janick 1 Denunciar post Postado Junho 3, 2008 Olá, estou com uma dúvida simples sobre sql, gostaria de saber como faço para retornar o segundo resultado de uma tabela. tenho uma galeria de fotos, e retorno a ultima cobertura, isto é, a atual, e tenho uma parte com as mais clicadas da semana passada. entao queria que automaticamente, quando inserir uma nova, ele ler a penultima cobertura em mais clicadas. meu select está assim: $sql_mais = mysql_query (" SELECT * FROM imagens WHERE id_galeria = ".$x['id_galeria']." ORDER by cliques DESC LIMIT 4 "); dá pra ter uma noção, se precisarem de mais informação pergunta aê. valeu Compartilhar este post Link para o post Compartilhar em outros sites
NaPraia 12 Denunciar post Postado Junho 3, 2008 gostaria de saber como faço para retornar o segundo resultado de uma tabela.qual é o campo que indica que é o mais recente? é o id?? se for o id select * from imagens where id = (select max(id) - 1 from imagens) que o max() do sub select pega o maior valor que seria o atual, por isso colocar o '- 1' Compartilhar este post Link para o post Compartilhar em outros sites
janick 1 Denunciar post Postado Junho 3, 2008 entendi, o problema é que os numeros de id mudam, pois são varias galerias, ai se eu tenho como ultima galeria a de id 40, e a minha segunda depois dessa é a 35. neste caso, se eu colocar o -1, ele vai para a 39 certo? Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Junho 3, 2008 e o que define qual é a mais recente ou mais antiga? Compartilhar este post Link para o post Compartilhar em outros sites
janick 1 Denunciar post Postado Junho 3, 2008 É o id, o ultimo id é a que está em destaque. E o penultimo, não necessariamente seguindo uma ordem nos numeros, é o que mostra as fotos mais clicadas da semana que passou. Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Junho 3, 2008 Seria parecido com o que o Napraia postou SELECT * FROM imagens WHERE id < ( SELECT MAX(id) FROM imagens) ORDER BY id DESC Teste Compartilhar este post Link para o post Compartilhar em outros sites
janick 1 Denunciar post Postado Junho 3, 2008 cara nao estou conseguindo, ele retorna a primeira galeria. e nao a penultima. Compartilhar este post Link para o post Compartilhar em outros sites
NaPraia 12 Denunciar post Postado Junho 3, 2008 faça um subselect para pegar o maior id, e depois outro para pegar o segundo maior select * from imagens where id = (select max(id) from imagens where id not in (select max(id) from imagens) order by desc isso deve resolver só uma coisa, esse id que eu coloquei não pode ser da foto, tem que ser o id da galeria Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Junho 3, 2008 Como fez exatamente entoa? Compartilhar este post Link para o post Compartilhar em outros sites
janick 1 Denunciar post Postado Junho 3, 2008 fiz dois select, um entrando na galeria, pegando todos os id´s diferente do ultimo e ordenando por id DESC e outro entrando na tabela de imagens, buscando em id_galeria, a que for igual ao resultado do select de cima! deu certo =), eu sei que são dois selects, mas eu realmente nao consegui fazer com um só. vou para depois pra pensar mais em cima disso! obrigado pela ajuda! Compartilhar este post Link para o post Compartilhar em outros sites
NaPraia 12 Denunciar post Postado Junho 3, 2008 legal, depois posta os dois selects aí que de repente dá para juntar e fazer num só. Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Junho 3, 2008 Traqnuilo entao se quiser pode fazer o sugerido pelo napraia que provavelmente é possivel simplificar Compartilhar este post Link para o post Compartilhar em outros sites
janick 1 Denunciar post Postado Junho 6, 2008 Fiz assim: $sql_galeria = mysql_query (" SELECT * FROM galeria WHERE status = 'on' AND id != ".$flash['id_galeria']." // difere da galeria que está atualmente como destaque ORDER by id DESC "); $x = mysql_fetch_assoc($sql_galeria); $sql_mais_clicadas = mysql_query (" SELECT * FROM imagens WHERE id_galeria = ".$x['id']." AND status = 'on' ORDER by cliques DESC LIMIT 4 "); é isso, valeu! Compartilhar este post Link para o post Compartilhar em outros sites