Ir ao conteúdo
  • Cadastre-se
rafaelnai

Como inserir dados do formulário escolhendo a tabela?

Recommended Posts

Sou iniciante em programação, e atualmente estou desenvolvendo um sistema de cadastro de produtos básico. Porém eu queria selecionar a tabela que o produto vai ser salvo. Por exemplo: 

Quero salvar o produto 'CDM01' na tabela 'caneta de metal', mas quero que o produto 'CDP01' seja salvo na tabela 'caneta de plastico' e assim por diante. são em média 20 categoria. Porém não sei como fazer, procurei em alguns tutoriais mas ainda não estou conseguindo.

 

HTML: 

<form action="includes/inserir.php" enctype="multipart/form-data" method="post">     <label> Nome do Produto: </label> <br/>          <input type="text" name="nProduto"/><br/><br/>     <label>Código:</label> <br/>          <input type="text" name="cProduto"/><br/><br/>     <label>Descrição:</label> <br/>          <textarea rows="10" cols="50" name="dProduto"/></textarea><br/><br/>          <input type="file" accept="image/*" name="pImagem"/> <br/> <br/>      <select name="tabelas">          <option value="0">Escolha uma categoria</option>
         
 
 
<?phpinclude 'configs/conexao.php';          $sql = ' SHOW TABLES ';          $query = mysql_query($sql);          while($dados = mysql_fetch_row($query)) {            echo"<option value='$dados[0]'>$dados[0]</option>" ;          }       mysql_close($conexao);      ?>      </select><input type="submit" name="button" value="registrar"></form>

 

PHP:

 

<?php ini_set ('default_charset','UTF-8'); ?><?phpinclude "../configs/conexao.php";$nomeProduto = $_POST["nProduto"];$codigoProduto = $_POST["cProduto"];$descricaoProduto = $_POST["dProduto"];$arquivoTMP = $_FILES["pImagem"]["tmp_name"];$nomeArquivo = $_FILES["pImagem"]["name"];$tabela  = $_POST['tabelas'];if($nomeProduto == "" || $codigoProduto == "" || $descricaoProduto == "") {echo "<script> alert('Preencha todos os campos!')</script>";return true;}$pExtensao  = strrchr ($nomeArquivo, '.');$pExtensao = strtolower($pExtensao);$pNovoNome = md5(time()) . $pExtensao;$pDestino = "imagens/" . $pNovoNome;move_uploaded_file($arquivoTMP, $pDestino);$caneta_metal = "INSERT INTO caneta de metal(Produto, Codigo, Descricao, Imagem) VALUES ('$nomeProduto', '$codigoProduto', '$descricaoProduto', '$pDestino')" or die (mysql_error());$caneta_plastico = "INSERT INTO caneta de plastico(Produto, Codigo, Descricao, Imagem) VALUES ('$nomeProduto', '$codigoProduto', '$descricaoProduto', '$pDestino')" or die (mysql_error());$marca_texto = "INSERT INTO 'marca-texto'(Produto, Codigo, Descricao, Imagem) VALUES ('$nomeProduto', '$codigoProduto', '$descricaoProduto', '$pDestino')" or die (mysql_error()); switch($tabela) {    case 'caneta de metal': $caneta_metal; $comando = mysql_query($caneta_metal);                          break;    case 'caneta de plastico':     $caneta_plastico; $comando2 = mysql_query($caneta_plastico);                          break;    case 'marca-texto': $marca_texto; $comando3 = mysql_query($marca_texto);            break; }?>
 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos por partes, qual é o objetivo de gravar produtos em tabelas diferentes? Essa definitivamente não é uma boa prática em termos de bancos de dados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou desenvolvendo o meu primeiro projeto, e nele eu tenho um menu com categorias de produtos (cerca de 20), então nesse sistema de cadastro, quero que quando alguém cadastre esse produto possar escolher a categoria. Por exemplo:

 

 

Nome produto: Caneta de Metal

Código: CDM01

Descrição: Qualquer descrição

Imagem: imagem.jpg

Categoria: Caneta de Metal

 

Nesse caso, ela ficaria na tabela "Caneta de Metal". Assim, quando eu listar os produtos eu possa visualizar por categoria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, mas nesse caso, que é o clássico, é apenas adicionar um campo adicional na tabela de cadastro com o código da categoria, e quando salvar o produto, salva também a categoria, uma tabela auxiliar para a categoria pode ser criada, se for necessária a inclusão de novas categorias (e isso provavelmente vai ocorrer), e quando tu quiser carregar os dados pode verificar a qual categoria o produto pertence.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Primeiramente, você tem uma ideia errada do banco de dados.

 

 

 

Quero salvar o produto 'CDM01' na tabela 'caneta de metal', mas quero que o produto 'CDP01' seja salvo na tabela 'caneta de plastico' e assim por diante.

O mais correto é criar uma tabela de categoria e uma tabela de produtos.

A tabela categoria terá apenas dois campos: ID auto incrementado e nome da categoria.

Na tabela de produtos além dos campos para o produto, você criará um campo recebendo o ID da categoria.

 

Assim você poderá distinguir  que o produto CDM01 é uma caneta de metal  e o CDP01 é uma caneta de plástico.

 

Lembre de que suas tabelas devem ter o engine do tipo innoDB para que os relacionamentos possam funcionar.

 

fora,, isso você não precisa " escolher" a tabela que vai inserir.. até porque você não vai criar 20 tabelas para cada categoria.. isso estaria fugindo das normas formais... e seu banco de dados poderá conter inconsistência de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×