Jump to content

Recommended Posts

Posted

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?

Posted

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 😛

Posted

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 😛

Posted

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?

Posted

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>";

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.