Ir para o conteúdo
Bruness

Ajuda com Max() e com um Slect

Mensagens Recomendadas

Bruness    0
Bruness

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?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
saramgsilva    2
saramgsilva

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Bruness    0
Bruness

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
saramgsilva    2
saramgsilva

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Bruness    0
Bruness

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga

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?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Bruness    0
Bruness

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

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade