Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Demaso

INSERT com último id inserido

Recommended Posts

E aí galera, beleza? Seguinte... Tenho duas tabelas "chamados" e "comentarios"... Um comentário pertence a apenas um chamado e um chamado pode ter vários comentários...

 

Tabela chamado

| id(int, auto_increment) | cliente | descricao | .....

 

Tabela comentarios

| id | idcha | descricao | .....

 

 

Eu preciso fazer o seguinte: ao cadastrar um chamado, quero também cadastrar um comentário pra ele...

Já fiz o INSERT pra tabela chamado e inseriu normalmente...

 

Ao fazer o segundo INSERT (para o comentario), como que eu faço pra saber o id que foi inserido no INSERT anterior pra inserir no idcha desse segundo INSERT??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara você pode fazer de duas formas....as duas eh fazendo um select na tabela CHAMADO e pegando o numero do ID...as duas formas vaum ser as seguintes.. ou você faz um select simples mandando ele ordernar decrescente pelo campo ID, isso ele lhe mostrará o ultimo registro primeiro...ex: select * from chamado order by id descOu você faz um select mandando comparar os valores que você inseriu na tabela...ex: select * from comentarios where descricao = '$valor_1' AND outra_coluna = '$valor_2'

Utiliza mysql_insert_id() para recuperar o ultimo ID gerado pelo campo auto_incrementhttp://br.php.net/manual/pt_BR/function.mysql-insert-id.phpAdailton

Esse eu naum conhecia... :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sempre usei esse método de dar um Select ordenado pela Pk e pegar o último registro. Porém, também sempre fiquei na dúvida como isso funcionaria num sistema de grande escala. Pense algo como Google da vida.. Com milhares de requisições por minuto. Esse método não funcionaria.. Iria dar o maior problemão. É claro que no nosso dia-a-dia isso pode não acontecer, em virtude do volume de requisições. Mas é algo pra se ficar esperto. Esse método postado pelo nosso amigo, é melhor e mais seguro. Segue abaixo um exemplo que consta no mesmo site do php.net:<?php$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');if (!$link) { die('Could not connect: ' . mysql_error());}mysql_select_db('mydb');mysql_query("INSERT INTO mytable (product) values ('kossu')");printf("Last inserted record has id %d\n", mysql_insert_id());?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.