PauloRJ 4 Denunciar post Postado Junho 13, 2007 Fala povo! estou desenvolvendo um sistema no qual tenho q saber o ID do registro autoincrement para poder codificar em MD5 e inserir o ID em 2 colunas. Uma em MD5 e uma Normal. quem puder me ajudar, grande abraço! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
goruks 0 Denunciar post Postado Junho 13, 2007 mysql_insert_id() pega ultimo inserido Compartilhar este post Link para o post Compartilhar em outros sites
David Ramires 1 Denunciar post Postado Junho 13, 2007 é alguma coisa assim que você precisa: $consulta = mysql_query("SELECT max(ID) as max_id from clientes");$linhas = mysql_fetch_array($consulta);$prox_id = $linhas['max_id'] + 1;ou mais fácil, pode usar o mysql_insert_id -> Retorna o ID da última cláusula INSERT executada leia este artigo Compartilhar este post Link para o post Compartilhar em outros sites
goruks 0 Denunciar post Postado Junho 13, 2007 desse jeito que voce pois fazendo um select para pegar ultimo id acho que pode dar problema nao? pq se alguem inserir um id antes de você fazer a consulta vai pegar o 1 id para frete e nao oque você queria pelo mysql_insert_id() ele pega pelo ultimo id daquela conexao.tudo depende para que você vai querer pegar id Compartilhar este post Link para o post Compartilhar em outros sites
David Ramires 1 Denunciar post Postado Junho 13, 2007 pode sim, mas depende para que ele vai usar, se o sistema estiver um grande de quantidade de usuário fazendo um cadastro, pode dar problema, mas se for algo mais sucegado, ai de boa... por isso qualquer coisa como você disse e eu tb, pode - se usar a função mysql_insert_id.... =) Compartilhar este post Link para o post Compartilhar em outros sites
PauloRJ 4 Denunciar post Postado Junho 13, 2007 Sim david, eu tinha feito uma consulta parapega ro ultimo id tambem achei que tinha alguma comando direto para pegar o proximo ID autoincrement livre, mas acho q nao tem beleza. valeu a força!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Pita 53 Denunciar post Postado Junho 13, 2007 Cuidado que os 2 podem dar problema: tanto com o select ou o mysql_insert_id, caso você traga o resultado para a página para usá-lo depois pode ocorrer o problema de alguem inserir alguma coisa nesse meio tempo pq a informação da sua página vai estar desatualizada.A melhor forma é no comando sql você já pegar o ultimo valor e usa-lo, sem pegar o valor pelo php, assim você garante que não vai ter problema com isso Compartilhar este post Link para o post Compartilhar em outros sites
PauloRJ 4 Denunciar post Postado Junho 13, 2007 Vou usar na hora $bd = new MySQL;$sql = "INSERT INTO tipo (tipo) VALUES ('$tipo')";$bd->query($sql);$registro = mysql_insert_id(); // resgata nº ID da query executada$registro2 = md5($registro); // gera o ID em criptografia$bd4 = new MySQL;$sql4 = "UPDATE tipo SET id_tipo = '$registro2' WHERE id = '$registro'";$bd4->query($sql4); http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
goruks 0 Denunciar post Postado Junho 13, 2007 Cuidado que os 2 podem dar problema: tanto com o select ou o mysql_insert_id, caso você traga o resultado para a página para usá-lo depois pode ocorrer o problema de alguem inserir alguma coisa nesse meio tempo pq a informação da sua página vai estar desatualizada.A melhor forma é no comando sql você já pegar o ultimo valor e usa-lo, sem pegar o valor pelo php, assim você garante que não vai ter problema com issonao tem perigo nao mysql_insert_id() (segundo manual do mysql) o proprio banco controla isso de pegar o ultimo id daquela conexao mesmo alguem inserindo depois vai continuar sendo o ultimo id que sua conexao inseriu Compartilhar este post Link para o post Compartilhar em outros sites
dan_lorenzato 0 Denunciar post Postado Junho 13, 2007 Descriçãoint mysql_insert_id ( [resource link_identifier] )Obtém o ID gerado para uma coluna AUTO_INCREMENT pela consulta INSERT anterior. Parâmetroslink_identifierA conexão MySQL. se o identificador de conexão não for especificado, a ultima conexão aberta por mysql_connect() é assumida. Se uma conexão assim não for encontrada, ela irá tentar criar uma como se a função mysql_connect() fosse chamada sem argumentos. Se uma conexão não for encontrada ou estabelecida, um aviso de nível E_WARNING é gerado.Valores de retornadoO ID gerado para uma coluna AUTO_INCREMENT pela consulta INSERT anterior em caso de sucesso, 0 se a consulta anterior não gerou um valor AUTO_INCREMENT, ou FALSE se não foi estabelecida a conexão com o MySQL.Pelo que entendi nesse trecho do Manual ai, se não for especificado nada no "link_identifier", ele vai pegar o id da ultima conexão feita por mysql_connect(), ou seja, se nesse meio tempo que você vá pegar o id e alguém inserir, vai pegar o id do outro caboclo lá hein.... Compartilhar este post Link para o post Compartilhar em outros sites
goruks 0 Denunciar post Postado Junho 13, 2007 LAST_INSERT_ID()mysql_insert_id()Assim está no manual:O último ID que foi gerado e mantido no servidor em uma base por conexão. Isto significa que o valor que a função retona para um dado cliente é o valor AUTO_INCREMENT gerado mais recentemente por aquele cliente. O valor não pode ser afetado pelos outros clientes, mesmo se eles gerarem um valor AUTO_INCREMENT deles mesmos. Este comportamento assegura que você pode recuperar seu próprio ID sem se preocupar com a atividade de outros clientes e sem precisar de locks ou transações. Compartilhar este post Link para o post Compartilhar em outros sites