JorgitoDF 0 Denunciar post Postado Agosto 10, 2012 Boa noite, Será que alguém pode me ajudar nessa? Preciso fazer um cadastro de cliente PJ e salvar os dados inseridos no formulário no banco de dados e antes de finalizar o cadastro do cliente PJ, tenho que cadastrar o contato deste cliente PJ, onde os dados serão inseridos em outro formulário (em outra tela) que será aberta quando um botão cadastrar contato for clicado, pois os dados do contato do cliente PJ serão salvos na tabela CONTATO que está relacionada com a tabela CLIENTE (a PK da tabela CLIENTE é a FK na tabela CONTATO), relacionamento 1:N, pois um cliente PJ pode ter vários contatos (vários funcionários como contato) e um contato (um funcionário que trabalha neste cliente PJ) pertence somente a este único cliente PJ. Quando os dados do contato forem inseridos no formulário de cadastro de contato ao clicar no botão submit estes dados deverão ser gravado na tabela CONTATO que está relacionada com a tabela CLIENTE. Até ai consegui fazer. A minha dificuldade é como salvar no banco de dados os dados do contato do cliente que está sendo cadastrado e passar o valor da PK do cliente que esta sendo cadastrado no cadastro do seu contato, pois a PK do cliente virá como FK no contato. Os campos da tabela de cliente são: id_cliente (PK), nome e endereco. Os campos da tabela de contato são: id_contato (PK), nomecontato e id_cliente(FK). O código que recebe os valores do formulário do cadastro do contato está assim: $nomecontato = $_POST["nomecontato"]; $endereco = $_POST["endereco"]; $sql = "INSERT INTO contato (nomecontato, endereco) VALUES ('$nomecontato','$endereco')"; Como eu passo o id_cliente para desta forma: $sql = "INSERT INTO contato (nomecontato, endereco, id_cliente) VALUES ('$nomecontato','$endereco', '$idcliente')"; Alguém pode me ajudar nessa? Gratos Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Agosto 10, 2012 Qual SGBD está utilizando??? MySQL??? Se for, basta utilizar a função mysql_insert_id() ou equivalente: :seta: http://br.php.net/mysql_insert_id/ Compartilhar este post Link para o post Compartilhar em outros sites
JorgitoDF 0 Denunciar post Postado Agosto 10, 2012 Mas se vários usuários tiverem fazendo mais de um cadastro ao mesmo tempo, esta função mysql_insert_id() funcionará corretamente? Henrique, Testei esta função mysql_insert_id() e notei que o valor da ID é impresso em tela, no meu caso eu não quero imprimir o valor da ID, tenho que capturar o valor da ID e salvar junto com o $sql = "INSERT INTO contato (nomecontato, endereco, id_cliente) VALUES ('$nomecontato','$endereco', '$idcliente')"; Esta função é executada sempre após o "INSERT" como faço para jogar o valor da ID capturada no comando INSERT??? Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Agosto 10, 2012 Mas se vários usuários tiverem fazendo mais de um cadastro ao mesmo tempo, esta função mysql_insert_id() funcionará corretamente? Sim, funciona... o próprio SGBD cuida disso pra você, não precisa se preocupar. Testei esta função mysql_insert_id() e notei que o valor da ID é impresso em tela, no meu caso eu não quero imprimir o valor da ID, tenho que capturar o valor da ID e salvar junto com o $sql = "INSERT INTO contato (nomecontato, endereco, id_cliente) VALUES ('$nomecontato','$endereco', '$idcliente')"; Como você testou??? Se testou com um echo vai mostrar na tela mesmo, faça assim: $query = mysql_query('INSERT INTO ... '); $lastId = mysql_insert_id(); //... Compartilhar este post Link para o post Compartilhar em outros sites
JorgitoDF 0 Denunciar post Postado Agosto 10, 2012 Teste assim: $query = mysql_query("INSERT INTO ...."); printf("%d\n", mysql_insert_id()); tentei fazer assim: $lastId = ("%d\n", mysql_insert_id()); e também não funciona........ Estou fazendo algo errado? Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Agosto 10, 2012 printf mostra na tela, uai... Assim você armazena o valor em uma variável... $lastId = mysql_insert_id(); Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Agosto 10, 2012 Posta o código que você já criou. Compartilhar este post Link para o post Compartilhar em outros sites
Carlos Eduardo_169497 2 Denunciar post Postado Fevereiro 23, 2013 Boa tarde Galera ! Preciso de uma ajuda estou usando esse comando mysql_insert_id() e guardadno o valor dele numa variavel, mas preciso agora resgatar essa variavel na minha pagina html e dar insert nela em outro formulario, estou trabalhando assim test.html cadastrar.php indica.php e conexao.php então o negocio é que o usuario envia seu email gerando esse id e depois da dar o insert preciso resgatar esse valor e enviar para um campo input hidden e dar o insert na outra tabela e não to conseguindo fazer a function no jquery para repassar esse valor. esse é o teste.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="BR" lang="PT-BR"> <head> <title>teste</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> </head> <script type="text/javascript"> $(document).ready(function(){ $("#btnEnviar").click(function(){ $.post("cadastrar2.php", {email:$("#emailUser").val()},function(dados){ if(dados == 0) alert("Este e-mail ja foi cadastrado!") else { if (dados == 1) { alert("E-mail cadastrado com sucesso!") $("#popup").show(1000); } else { alert("Erro") } } }); }); $("#btnIndicar").click(function(){ $.post("indica.php", {indica1:$("#indica1").val(),indica2:$("#indica2").val(),indica3:$("#indica3").val()}, function(dados){ if(dados == 1) { alert("Indicação cadastrada com sucesso!") $("#popup").hide(); $("#redesociais").show(); } else { alert("erro") } }) }); }); </script> <body> <form> <input type='text' name='emailUser' id="emailUser" size='50'> <input type="button" id="btnEnviar" value="Enviar"> </form> <div id="popup" style="display:none; position:absolute;float:left;width:290px; height:420px;margin-top:-20px;margin-left:50px; -webkit-border-radius: 18px;-moz-border-radius: 18px;border-radius: 18px;border: solid 6px #8B0000; -webkit-box-shadow: #666 0px 5px 8px;-moz-box-shadow: #666 0px 5px 8px; box-shadow: #666 0px 5px 8px; background:#FFFFFF;" > <a href='javascript:;' onclick='$("#popup").hide(); window.location="teste.html"'><img src="images/fechar.jpg" style="border:0; margin-left:250px;"></a><br> <label class="texto">Indique 3 amigos e aumente suas chances de ser o primeiro a testar!</label> <input type="text" name="iduser" id="iduser" value="<?php echo $id_email;?>" /> <br><br><label style="margin-left:10px;">Indicação 1:</label><br><input type="text" name="indica1" id="indica1" placeholder="Faça sua indicação" style="margin-left:10px; -webkit-border-radius: 10px;-moz-border-radius: 10px;border-radius: 10px;border: solid 1px #000; height:30px; width:250px;"> <br><br><label style="margin-left:10px;">Indicação 2:</label><br><input type="text" name="indica2" id="indica2" placeholder="Faça sua indicação" style="margin-left:10px; -webkit-border-radius: 10px;-moz-border-radius: 10px;border-radius: 10px;border: solid 1px #000; height:30px; width:250px;"> <br><br><label style="margin-left:10px;">Indicação 3:</label><br><input type="text" name="indica3" id="indica3" placeholder="Faça sua indicação" style="margin-left:10px; -webkit-border-radius: 10px;-moz-border-radius: 10px;border-radius: 10px;border: solid 1px #000; height:30px; width:250px;"> <br><br><center><input type="button" value="Indicar" id="btnIndicar" > </div> <div id="redesociais" style="display:none; position:absolute;float:left;width:290px; height:420px;margin-top:-20px;margin-left:50px; -webkit-border-radius: 18px;-moz-border-radius: 18px;border-radius: 18px;border: solid 6px #8B0000; -webkit-box-shadow: #666 0px 5px 8px;-moz-box-shadow: #666 0px 5px 8px; box-shadow: #666 0px 5px 8px; background:#FFFFFF;" > <a href='javascript:;' onclick='$("#redesociais").hide(); window.location="teste.html"'><img src="images/fechar.jpg" style="border:0; margin-left:250px;"></a> <br><label style="margin-left:10px;">Compartilhe essa ideia com seus amigos!</label><br> </div> </body> </html> cadastrar.php <?php include("conexao.php"); $emailUser=$_POST['email']; $hndl=mysql_query("INSERT INTO contato_landing_page (email) VALUES ('$emailUser')"); $id_email = mysql_insert_id(); if(!$hndl) { echo"0"; } else { echo"1"; } ?> o indica.php <?php include("conexao.php"); $indicacao1=$_POST['indica1']; $indicacao2=$_POST['indica2']; $indicacao3=$_POST['indica3']; $hndl=mysql_query("SELECT max(id_email)FROM contato_landing_page"); if($hndl) { $nrows = mysql_num_rows($hndl); $row = mysql_fetch_row($hndl); $lastID = $row[0]; $hndl=mysql_query("INSERT INTO indicacao_landing_page (indica1, indica2, indica3, id_email ) VALUES ('$indicacao1','$indicacao2','$indicacao3','$lastID')"); if($hndl) { echo"1"; } else { echo"2"; } } ?> e ai alguem pode dar uma mãozinha? opss o que esta no indica.php foi uma outra maneirque achei mas não é confiavel se varias pessoas estiverem fazendo isso ao mesmo tempo e me indicaram o mysql_insert_id() Compartilhar este post Link para o post Compartilhar em outros sites