VBBurba 0 Denunciar post Postado Novembro 29, 2006 Olá pessoal,Eu preciso cadastrar algumas informações e depois eu preciso usar o ID desse cadastro pra segunda etapa do cadastro que será feita em parte no mesmo registro e parte será feito em outra tabela.Minha duvida é: como que após fazer o cadastro eu selecione Exatamente o ID que acabei de cadastrar?Abraços Compartilhar este post Link para o post Compartilhar em outros sites
VBBurba 0 Denunciar post Postado Novembro 29, 2006 Opá pessoal, valeu ai por terem lido e tal. Eu deu uma procurada melhor e já encontrei a resposta pra minha dúvida se alguém precisar é isso aqui: http://www.php.net/manual/pt_BR/function.mysql-insert-id.php Abraços Compartilhar este post Link para o post Compartilhar em outros sites
graffdesign 0 Denunciar post Postado Novembro 29, 2006 Fazendo um query que pegue o último id cadastrado, se você fizer uma tranzação fechada até o final você não corre o risco de pegar id errado.Da uma googlada sobre tranzações.Isso basicamente, faz um processo cercado, onde só sai desse cerco quando é finalizada a tranzação toda, evitando a entrada de dados externos no meio de sua tranzaão com o banco além de outras coisas.Exemplo de tranzação é os sistemas bancario, que se você tiver sacando um dinheiro e na hora de sair o dinheiro acabar a luz, o sistema não contabiliza a seu saque (ao menos não deveria fazer). Ou seja, só concretiza os dados se ouver finalização da tranzação.Outra forma é você cadastrar a primeira etapa numa variável de escopo persistente como Sessions, dae na segunda etapa, você cadastrar a primeira etapa, faz uma query abaixo do insert para pegar o id cadastrado e cadastra a segunda etapa. com esse novo ID, mas o correto era usar tranzação tbm nessa forma de uso. Ou seja tudo axo que se resume a usar tranzação para evitar erros.boa sorte. Compartilhar este post Link para o post Compartilhar em outros sites
Diego Rodriguez 0 Denunciar post Postado Setembro 24, 2008 Eu entendi ateh o comando mas como voce utilizou ele =D ??? Opá pessoal, valeu ai por terem lido e tal. Eu deu uma procurada melhor e já encontrei a resposta pra minha dúvida se alguém precisar é isso aqui: http://www.php.net/manual/pt_BR/function.mysql-insert-id.php Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Setembro 24, 2008 Depois da query do insert faça isso $query = mysql_query($sql) or die (mysql_error()); $idinfo = mysql_insert_id(); echo $idinfo; Eu entendi ateh o comando mas como voce utilizou ele =D ??? UPDATE http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
{TeRmInAtOr} 1 Denunciar post Postado Setembro 24, 2008 Mas como o graffdesign falou, o melhor é fazer isto através de uma transação. Pois pode ocorrer o seguinte: Depois que você executar o primeiro insert e antes de você buscar o id gerado, se algum outro usuário executar um insert nesse exato momento você tera o id errado. Com uma transação ajuda bastante pois o script sera testado e executado ao mesmo tempo. Falando nisto, o mysql tem forey key? tem alguma forma de fazer isto com ele? Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Setembro 24, 2008 Mas como o graffdesign falou, o melhor é fazer isto através de uma transação. Pois pode ocorrer o seguinte: Depois que você executar o primeiro insert e antes de você buscar o id gerado, se algum outro usuário executar um insert nesse exato momento você tera o id errado. Com uma transação ajuda bastante pois o script sera testado e executado ao mesmo tempo. Falando nisto, o mysql tem forey key? tem alguma forma de fazer isto com ele? {TeRmInAtOr} Eu tenho uma aplicação sobre o que voce disse amigo, que é cadastramento de fotos de produtos de varias empresas que usa o mesmo sistema. Tipo assim o logista cadastra os dados do produto depois eu pego o id armazeno em uma sessao, ai ele tem a opção de inserir a foto do produto usando update em uma segunda página ou depois clicando no link do produto. Corro este risco mesmo armazenado em uma sessão? pegar o id errado? ja fiz varios teste e cada um pega seu id Compartilhar este post Link para o post Compartilhar em outros sites
{TeRmInAtOr} 1 Denunciar post Postado Setembro 24, 2008 Com certeza kra, ainda que a possibilidade seja remota, ela existe. Basta um processo ficar no meio do outro que tu vai ter um id de outro usuário na sessão. Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Setembro 25, 2008 Mas como o graffdesign falou, o melhor é fazer isto através de uma transação. Pois pode ocorrer o seguinte: Depois que você executar o primeiro insert e antes de você buscar o id gerado, se algum outro usuário executar um insert nesse exato momento você tera o id errado. Com uma transação ajuda bastante pois o script sera testado e executado ao mesmo tempo. Falando nisto, o mysql tem forey key? tem alguma forma de fazer isto com ele? Isso não ocorre, pois a função mysql_insert_id() pega o ultimo id que a SUA sessão/resource criou. Tem um tópico falando sobre: http://forum.imasters.com.br/lofiversi...hp/t198792.html Att, Guilherme Oenning Compartilhar este post Link para o post Compartilhar em outros sites
Luiz Picolo 3 Denunciar post Postado Setembro 25, 2008 Ou faça um query que pegue sempre o ultimo id. <? $query = mysql_query ("SELECT id tabela ORDER BY id DESC") $tabela = mysql_fetch_array ($query); print $tabela[`id`]; ?> Ou simplismente pegue o MAX(id); pode ser que resolva http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Setembro 25, 2008 Mas como o graffdesign falou, o melhor é fazer isto através de uma transação. Pois pode ocorrer o seguinte: Depois que você executar o primeiro insert e antes de você buscar o id gerado, se algum outro usuário executar um insert nesse exato momento você tera o id errado. Com uma transação ajuda bastante pois o script sera testado e executado ao mesmo tempo. Falando nisto, o mysql tem forey key? tem alguma forma de fazer isto com ele? Isso não ocorre, pois a função mysql_insert_id() pega o ultimo id que a SUA sessão/resource criou. Tem um tópico falando sobre: http://forum.imasters.com.br/lofiversi...hp/t198792.html Att, Guilherme Oenning Valeu amigo minha dúvida foi esclarecida li todo o tópico e os links, vi que não existe a possibilidade mesmo que remota http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites