seguinte, estou usando um fórum IPB (igual a esse), ocorre que no meu site eu quero procurar TODOS os usuários que já postaram no fórum com ID 64.
Ok, eu faço a busca, consigo resgatar os usuários sem repetir, porém, eles não repetem no mesmo tópico, pois quando muda o ID do tópico, o DISTINCT não diferencia.
Vou explicar melhor com o código que eu tenho até aqui.
$Qtopics = "SELECT * FROM ipb_topics WHERE forum_id='64'"; #seleciona os tópicos do fórum 64
$Rtopics = mysql_query($Qtopics);
while ($row = mysql_fetch_assoc($Rtopics))
{
$Qposts = "SELECT DISTINCT author_name FROM ipb_posts WHERE topic_id='".$row['tid']."' ORDER BY author_name ASC"; #seleciona os campos 'author_name' sem repetir, nos tópicos iguais a "$row['tid']" (que foram selecionados anteriormente), organizados em ordem alfabética pelo 'author_name'
$Rposts = mysql_query($Qposts);
while ($r = mysql_fetch_assoc($Rposts))
{
print $r['author_name'];
}
}
Ok, mas por exemplo, se eu tenho os seguintes dados na tabela mysql.
Tabela ipb_topics: (tid = ID do tópico; forum_id = ID do fórum)
tid | forum_id |
1 | 64 |
2 | 64 |
3 | 64 |
Tabela ipb_posts: (pid = ID do post; author_name = nome do usuário; topic_id = ID do tópico)
pid | author_name | topic_id
1 | José | 1
2 | João | 2
3 | Luana | 3
4 | José | 2
5 | João | 3
6 | Luana | 1
7 | Luana | 2
8 | Luana | 2
9 | Luana | 2
10 | José | 1
Ok, digamos que tenha 3 tópicos no fórum 64, o José postou no 1 (2 vezes) e no 2, o João postou no 2 e no 3 e a Luana postou no 1, 2 (3 vezes) e 3
Eu gostaria que meu código retornasse assim:
João
José
Luana
Mas ele vai retornar assim:
José
Luana
João
José
Luana
João
Luana
Entenderam? Ele vai listar os usuários que postaram no tópico 1, sem repetir; depois os que postaram no tópico 2, sem repetir; e finalmente os que postaram no tópico 3, sem repetir também. Mas no final, vai acabar aparecendo mais de uma vez o mesmo nome, por que ele usou o DISTINCT separadamente em cada tópico, e não em toda a operação.
Eu acredito que o erro esteja lá naquela pesquisa pelos posts, em que eu botei "where topic_id='".$row['tid']."'", acho que a forma como eu to pesquisando tá errada, deveria ser tudo junto, certo? Mas como vou especificar o fórum, porque IPB possui a tabela de TÓPICOS, onde mostra os IDs deles e tal e o fórum onde foram postados, e a tabela de POSTS, que mostra os IDs deles e o ID dos tópicos onde eles foram postados, mas não mostra (na tabela de posts) o fórum onde foi postado. Então eu PRECISO fazer uma consulta na tabela de tópicos, pra especificar que eu quero os tópicos somente do fórum 64.
Entenderam mais ou menos o que eu quero?
Espero que sim, um abraço e obrigado pela ajuda!
Edição feita por: blecko, 23/07/2007, 01:15.