Essinho 0 Denunciar post Postado Junho 12, 2008 olá amigos! estou com um probleminha pra pra inserir alguns campos no meu banco... eu tenho nele uma tabela contato, uma usuario e uma nivel_usuario. Em uma pagina com formulario eu precisaria colocar todos os campos necessarios, como: usuario nome, login, senha, contato email, tel, cel nivel_usiario nivel todos esses campos (nome, login, senha, email...) estariam no form, ai quando eu precionasse o submit seria inserido no banco os dados relacionado por um id. dei umas olhadas por ai e vi algo assim INSERT INTO xxx (SELECT x, y FROM foo JOIN bar USING (y) WHERE z = 1); mais pra ser sincero naum intendi muito alguem pode me ajudar? http://forum.imasters.com.br/public/style_emoticons/default/grin.gif vlwW http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Diego Floripa! 0 Denunciar post Postado Junho 12, 2008 Olá, Você vai ter que fazer o seguinte: Quando clicar em Submit... 1º inserir: Inserir os dados de usuario: Na tabela tem que ter o seguinte: usuarioID, nome, login, senha. $sql = "INSERT INTO usuario(nome, login, senha.) VALUES('".$nome."', '".$login."', '".$senha."') "; 2º inserir: Faz um select assim para pegar o usuarioID que você acabou de adicionar por exemplo: $sqlultimoID = "SELECT LAST_INSERT_ID(usuarioID) AS ultimoID FROM usuario ORDER BY usuarioID DESC LIMIT 1"; $qryultimoID = mysql_query($sqlultimoID) or die ("ERRO no SQL ULT ID: ".mysql_error()."<br><br>".$sqlultimoID); $regultimo = mysql_fetch_array($qryultimoID); Agora faz o inserir contato: $sql = "INSERT INTO contato(usuarioID, email, tel, cel) VALUES('".$regultimo[ultimoID]."', '".$email."', '".$tel."', '".$cel."') "; 3ºInsert: Faz a mesma coisa: $sql = "INSERT INTO nivelusuario(usuarioID, nivel) VALUES('".$regultimo[ultimoID]."', '".$nivel."') "; Entendeu? todos vão usar o $regultimo[ultimoID] que foi colocado la no usuario, assim vai relacionar uma e outra tabela. Qualquer coisa posta ai. $regultimo[ultimoID] Compartilhar este post Link para o post Compartilhar em outros sites
Essinho 0 Denunciar post Postado Junho 12, 2008 opa! vlw aew diego... mais cara, se por alguma coincidendia acontecer de 2 usuarios estar fazendo o cadastro no mesmo instante isso nao poderia da conflito? esse select nao poderia da conflito... c nao acha q seria melhor eu fazer o select pelo email... e dpois tentar associar de alguma forma as outras tabelas com o ID onte tem akele email? http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif vlw Compartilhar este post Link para o post Compartilhar em outros sites
Essinho 0 Denunciar post Postado Junho 13, 2008 eu usei o select assim... usando o where $sqlultimoID = "SELECT email, LAST_INSERT_ID(id) AS ultID FROM usuarios WHERE email = '$email' ORDER BY id DESC LIMIT 1"; $qryultimoID = mysql_query($sqlultimoID) or die ("ERRO no SQL ULT ID: ".mysql_error()."<br><br>".$sqlultimoID); $regultimo = mysql_fetch_array($qryultimoID); vcs axam q naum seria necessario?... para usei para ter certeza q akele seria u unico usuario e pq tbem num entendi muito bem como funciona o LAST_INSERT_ID :P Compartilhar este post Link para o post Compartilhar em outros sites
Athanasio 0 Denunciar post Postado Junho 19, 2008 OLA TENTEI FAZER TBM MAS NÃO DEU CERTO O MEU CODIGO É ESSE. cada dados tem sua tabela, mas não consigo gravar-las, alguem pode me ajudar ai //pagina para realizar o seu cadastro if(getenv("REQUEST_METHOD") == "POST") { //verfica se o formulario foi enviado require "codigo.php"; //inclui o arquivo para conexao com o banco $nome = $_POST['nome']; tabela1 $senha = $_POST['senha']; tabela1 $serie = $_POST['nome_serie']; tabela2 $mat = $_POST['nome_materia']; tabela3 $sql = "INSERT INTO tabela1 (nome, senha) VALUES('".$nome."', '".$senha."') "; $sqlultimoID = "SELECT LAST_INSERT_ID(id) AS ultimoID FROM tabela1 ORDER BY id DESC LIMIT 1"; $qryultimoID = mysql_query($sqlultimoID) or die ("ERRO no SQL ULT ID: ".mysql_error()."<br><br>".$sqlultimoID); $regultimo = mysql_fetch_array($qryultimoID); $sql = "INSERT INTO tabela2 (`id`, `nome`) VALUES ('".$regultimo[ultimoID]."', '".$nome_serie."') "; $sql = "INSERT INTO tabela3 (`id`, `nome`) VALUES ('".$regultimo[ultimoID]."', '".$nome_materia."') "; <form name="login" method="post" > Nome: <input name="nome" type="text" id="nome" size="20"> senha:<input name="senha" type="password" id="senha" size="20"> Serie: <input name="nome_serie" type="text" id="nome_serie" size="20"> Materia: <input name="nome_materia" type="text" id="nome_materia" size="20"> <input name="entrar" type="submit" id="entrar" value="Cadastrar"> </form> ESTAVA TENTANDO TBM EXIBIR O CADASTRO.. MAS NENHUMA TABELA RECEBE OS DADOS VIA FORM <? include"codigo.php"; $y = mysql_query("SELECT nome senha FROM tabela1"); $y = mysql_query("SELECT nome_serie FROM tabela2"); $y = mysql_query("SELECT nome_materia FROM tabela3"); // selecionei a tabela que quero trabalhar que no caso e a que nois criamos no 1º passo while($x = mysql_fetch_array($y)){ //criei um array chamado $x que sera responssavel pra listar os dados echo' <table align=center width=80% height="28" border="0" cellspacing="2"> <tr> <td width="50"><strong> <font face="verdana">Nome:</font></strong></td> <td width="254"><strong> <font color="red" face="verdana">'.$x['nome'].'</font></strong></td> <td width="50"><strong> <font face="verdana">Senha :</font></strong></td> <td width="200"><strong> <font color="red" face="verdana">'.$x['senha'].'</font></strong></td> <td width="50"><strong> <font face="verdana">Nsere:</font></strong></td> <td width="254"><strong> <font color="red" face="verdana">'.$x['nome_serie'].'</font></strong></td> <td width="50"><strong> <font face="verdana">mta :</font></strong></td> <td width="200"><strong> <font color="red" face="verdana">'.$x['nome_materia'].'</font></strong></td> </tr> </table> "; ?> com isso queria chegar a esse resultado cadastrar o usuario e sua id , na tabela2 e tabela3 automaticamente, dai quando eu fiz uma consulta atraves do login do usuario, mostrar sua serie e sua materia numa pagina restrita se alguem pode me ajudar a melhorar esse codigo , não consigo achar os erros .. desde já agradeço pessoal Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Douglas 0 Denunciar post Postado Junho 24, 2008 Só a titulo de informação: De acordo com a documentação do Mysql, o comando LAST_INSERT_ID(), retorna o ID da ultima Inserção ou Atualização feita "pelo cliente", traduzindo: não tem como dois usuarios diferentes pegarem uma mesma ID... Assim como, se um usuario que não deu um INSERT INTO ou UPDATE usar o comando LAST_INSERT_ID(), vai retonar um valor 0 ou "false"... Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Douglas 0 Denunciar post Postado Junho 24, 2008 Athanasio: Primeiro: coloca $regultimo['ultimoID'] (com aspas simples) na consulta SQL; Segundo, se isso que você tenha passado for o codigo todo, nao consegui encontrar a consulta de inserção; :õ abraço Compartilhar este post Link para o post Compartilhar em outros sites