Como pegar o id de uma tabela e inserir em outra?
Boa tarde pessoal, Eu revirei o fórum mas não consegui encontrar algo que pudesse me ajudar então abri novo tópico. É o seguinte. Através de pesquisas pela internet montei um código de cadastro de clientes com uma " tabela de nome clientes" que cadastra dados do cliente através de um formulário e esse formulário também envia "dados do veículo do cliente" que devem ser cadastrados em outra tabela de nome veiculo. Explico porque preciso de duas tabelas, se o cliente mais tarde quiser cadastrar mais veículos, estes serão cadastrados na tabela veiculos juntamente com o id do cliente resgatado da tabela clientes, e aí é que está o problema, não consigo inserir o id da tabela clientes na tabela veiculo juntamente com os dados do veiculo. Segue abaixo o meu código:
<?php
$nome = mysql_real_escape_string($_POST['nome']). $senha = mysql_real_escape_string($_POST['senha']). //md5($_POST['senha']). $telefone = mysql_real_escape_string($_POST['telefone']). $email = mysql_real_escape_string($_POST['email']). $morada = mysql_real_escape_string($_POST['endereco']."/".$_POST['cidade']."/".$_POST['estado']). $data_cadastro = mysql_real_escape_string($_POST['data_cadastro']). $veiculo = mysql_real_escape_string($_POST['veiculo']). #//retirando espaços $nome=trim($nome). $telefone=trim($telefone). $email=trim($email). $senha=trim($senha). $morada=trim($morada ). $data_cadastro=trim($data_cadastro). $erro=0. #//verificar se já existe o nome cadastrado no BD $s = mysql_query("SELECT * FROM clientes WHERE nome LIKE '%$nome%'"). $mnr = mysql_num_rows($s). if($mnr!=0){ echo '<center><font color="#FF0000"><h1> Nome já cadastrado em nosso sistema!</h1></font>'. echo "<meta http-equiv='refresh' content='3. URL= form_cadastro.php'>". $erro++. } #//se não encontrar @ no campo e-mail if(!eregi("@", $email) ){ echo '<center><font color="#FF0000"><h1>E-mail incorreto!</h1></font>'. echo "<meta http-equiv='refresh' content='2. URL= form_cadastro.php'>". $erro++. } #//encontrar números if( ereg("[0-9()-.,:. *&¬!?|+}{/]", $nome) ){ echo '<center><font color="#FF0000"><h1>Campo nome não pode conter caracteres especiais!</h1></font>'. echo "<meta http-equiv='refresh' content='3. URL= form_cadastro.php'>". $erro++. } #//verificar se o campo nome foi setado if(empty($nome)){ echo '<center><font color="#FF0000"><h1>Campo nome em branco!</h1></font>'. echo "<meta http-equiv='refresh' content='2. URL= form_cadastro.php'>". $erro++. } #//Verifica se existe este e-mail no banco de dados$s=mysql_query("SELECT * FROM clientes WHERE email LIKE '%$email%'"). $mnr=mysql_num_rows($s). if($mnr!=0){ echo '<center><font color="#FF0000"><h1> E-mail já cadastrado em nosso sistema!</h1></font>'. echo "<meta http-equiv='refresh' content='3. URL= form_cadastro.php'>". $erro++. } if($erro==0){ $inserir = mysql_query("INSERT into clientes (nome, senha, telefone, email, morada, data_cadastro) VALUES ('$nome', '$senha', '$telefone', '$email', '$morada', '$data_cadastro')"). // Insere os valores do cliente no Banco de Dados.,
//mysql_query($inserir) or die(mysql_error()). } #/////////// Daqui pra baixo não funciona ///////// #// Seleciona os valores do cliente da tabela cliente$sql = ("SELECT * FROM clientes WHERE nome LIKE '%$nome%'"). $id = $sql['id']. #// Insere os valores do veiculo do cliente na tabela veiculos$inserir_veiculo = mysql_query("INSERT into veiculos (id, veiculo) VALUES ('$id', '$veiculo')"). //valor $veiculo buscado no começo do código pelo $_POST['veiculo']. mysql_query($inserir_veiculo) or die(mysql_error()). #//avisando que criou usuário e volta para o formulário de cadastroecho "<meta http-equiv='refresh' content='2. URL= form-cadastro.php'>". echo "<div style='width:600px. text-align:center. margin:0 auto 0 auto. '><h2>Salvando dados de<b> <i>".$_POST['nome']." </b></i></h2> <img src='../../images/loading.gif'></div>".?> Bem como comentado acima, o código funciona perfeitamente até a inserção dos dados do cliente mas quando chega no SELECT para buscar o id deste cliente criado, ele não encontra o id e não consegue gravar no INSERT o veículo na tabela veiculos e muito menos resgata o id da tabela clientes para inserir na tabela veiculos. Porque ele não seleciona o id e porque não insere nem o valor $veiculo na tabela veiculos? Quando coloco echo no $id, me dá este erro. echo $id."<br/>". Erro: SQuery was empty Acredito que o S na primeira linha é o id que ele me retorna, oque é isso? E a linha abaixo nem preciso citar, está voltando vazio. E se eu tento gravar somente os dados do veiculo na tabela veiculos, como abaixo demonstro, me retorna este erro:
$inserir_veiculo = mysql_query("INSERT into veiculos (veiculo) VALUES ('$veiculo')"). // Insere os valores do veiculo no Banco de Dados.,
mysql_query($inserir_veiculo) or die(mysql_error()). #//erro retornado You have an error in your SQL syntax. check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1 Já tentei de todas as formas que encontrei em fóruns pela internet mas não estou conseguindo. Não dá pra buscar pelo último ID cadastrado porque vai saber se não tem mais clientes cadastrando-se e um pega o ip do outro.
Discussão (8)
Carregando comentários...