• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Bruness

Ajuda com Max() e com um Slect

9 mensagens neste tópico

Boas,.

Estou a fazer um pequeno script e tenho que saber qual é o ultimo id introduzido numa tabela.

A tabela tem +- este aspecto.

tabela: nuke_release

lid|release|imdb

5 |  rele_5  |00258

4 |  rele_4  |00215

3 |  rele_3  |04815

2 |  rele_2  |58215

1 |  rele_1  |00150

Em que o lid é uma PRIMARY KEY que se auto incrementa.

então é a questão é que eu agora preciso de saber qual foi o ultimo valor introduzido na tabela, para o poder usar.

Então pensei em usar um select e a função MAX().

Estou a usar isto:

SELECT max(lid) FROM nuke_release;

Mas este select não me está a devolver o valor correcto.

Alguma sugestão?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem isto é 1 duvida de sql e nao de php, apesar de ser para um script!  :D

o max() devia funcionar... tem mesmo que funcionar....  diz la o valor que te deu...pode ser k se descobra o erro  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem acho que encontrei outr solução.

Estou a usar isto:

$id = mysql_query("SELECT lid FROM `nuke_nsngd_downloads` ORDER BY lid DESC");
$nro = mysql_fetch_row($id)or die(mysql_error());
$my_last = $nro[0];
print " (Last number $my_last) </td>";

E parece estar a funcionar :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem acho que encontrei outr solução.

Estou a usar isto:

$id = mysql_query("SELECT lid FROM `nuke_nsngd_downloads` ORDER BY lid DESC");
$nro = mysql_fetch_row($id)or die(mysql_error());
$my_last = $nro[0];
print " (Last number $my_last) </td>";

E parece estar a funcionar :D

ya é bem!!  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

então mas o max() encontra-te o maior valor que a coluna seleccionada dispoe, e não o ultimo valor

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

então mas o max() encontra-te o maior valor que a coluna seleccionada dispoe, e não o ultimo valor

Pois mas no caso como é uma primary key e ela auto implemeta-se de + 1 valor sempre que é adicionado uma nova linha.

tipo:

eu adicionava uma nova linha iria ter isto:

lid|release|imdb

6 |  rele_6  |00258

5 |  rele_5  |00258

4 |  rele_4  |00215

3 |  rele_3  |04815

2 |  rele_2  |58215

1 |  rele_1  |00150

Logo o novo max do lid seria o valor 6.

por isso acho que deveria funcionar....

Mas seja como for a outra solução que arranjei está a funcionar :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

epa.. o SQL que tens no primeiro post está bem.

Pa... no primeiro post não escreveste nada... mas para extraires dados de um resultado de um query tens sempre que utilizar um função da familia mysql_fetch_*.

Na solução que tu tens a no teu segundo post está um código mau. Tipo fazes um query que te seleciona as linhas todas de uma tabela mas depois só usas uma... isso é péssimo. Se tiveres uma base de dados maiorzita pode trazer problemas sérios e desnecessários.

Já experimentaste por o SQL do primeiro post no código do teu segundo post?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assim também está a funcionar  :)

$id = mysql_query("SELECT max(lid) FROM `nuke_nsngd_downloads`");
$nro = mysql_fetch_row($id)or die(mysql_error());
$my_last = $nro[0]+1;
print " (Last number $my_last) </td>";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora