Ir para conteúdo

POWERED BY:

Arquivado

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

juni0r

Select diferente

Recommended Posts

bom dia a todos, estou com o seguinte problema:tenha uma tabela matéria que tem os campos:id, titulo, conteudo, secao, data sendo q tenho 7 tipos de seções (moda, comportamento, saude...)o que eu preciso é fazer um SELECT que pegue os últimos (ORDER BY data DESC) de cada seção!!eu já tentei GROUP BY, MAX(data), mas ele me retorna a data certa com os outros campos (titulo, conteudo, secao, id) correspondentes a outra linda..e mais, eu preciso que isso apareça numa index de maneira randômica, ou seja, tendo a ultima matéria de cada seção, eles vai ficar dispostos maneira diferente cada vez que o usuário entrar na index.. alguem pode me daruma mãozinha???valeu ae :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

po

 

eu tinha tentado o subselect, mas nao tinha conseguido tb..

 

coloquei o comando:

 

SELEC * FROM materia WHERE secaoMateria = '(SELECT secaoMateria FROM materia GROUP BY secaoMateria)' ORDER BY RAND( )

 

com esse seu comando ele deu o erro:

 

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELEC * FROM materia WHERE secaoMateria = '(SELECT secaoMater

 

:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao sou espeicalista em SQLs mas, tenta sem aspas no select de dentro... na boa mano.. será que os dados tao sendo exibidos de forma certa e voce eh q nao ta sacando? pq o select com group by que te passei era pra funcionar na boa... ve ai..

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenho certeza q ta gerando o erro.. :( cara, o mysql suporta subselect mesmo?? ae a solução era mais simples..sem falar que precisopegar a ultima materia de cada secaomesmo assim vlw sua intenção fredinhow :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao queria apelar mas n tem outro jeito hehe (eu geralmente faco isso (2 tabelas pra noticias com secoes))cria uma tabela pra secoes:tblSecoes (ID(int 11 auto_increment), descricao(varchar 250)) por exe a tbl de materiastblMaterias (ID(int 11 auto_increment), titulo(varchar 250), idsecao(int 11)) por exdaí:$q = mysql_query("SELECT ID,descricao FROM tblSecoes ORDER BY RAND() LIMIT 5");if ($v = mysql_fetch_array($q)){do{$qq = mysql_query("SELECT * FROM tblMaterias WHERE idsecao=".$v["ID"]." ORDER BY ID DESC");$vv = mysql_fetch_array($qq);print $vv["titulo"]." - ".$v["descricao"]."<br>";}while($v = mysql_fetch_array($q));}desse modo ele pega na tabela de seções randomicamente todas as que tiverem limitando 5 (secoes distintas) e mais abaixo pra cada uma ele pega o ultimo texto onde o id da secao em questao for o mesmo da materia saca?né possível que nem assim funcione :) testa aí só pra ver

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.