[SQL]dubbele in query filteren

Pagina: 1
Acties:

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 27-07 16:57
Ik ben een script aan het maken netzoiets als het Active Topics script, ik kies dus op username en sorteer op datum uit de posts, en dan zoek ik in de threads er de bijbehoorende gegevens bij:

SELECT * FROM posts WHERE user='$username' ORDER BY date

en dan een while loopje dat dus alles laat zien...
Maar als je nou bijvoorbeeld 2x in een topic gereageerd hebt krijg je dus zoiets:

Test Topic 6
Test Topic 1
Test Topic 6
Test Topic 2
Test Topic 8
Test Topic 9

Dus 2x nummer 6 erin.. Hoe kan ik nou filteren in de Query dat hij maar 1x hem eruit poept :P

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
Group by posts :?

  • Brothar
  • Registratie: Oktober 2000
  • Laatst online: 04-02 09:14

Brothar

meester

unique ?

eagle


  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025

  • Anakin239
  • Registratie: September 2001
  • Laatst online: 01-08 15:41
select distinct

  • EfBe
  • Registratie: Januari 2000
  • Niet online
SELECT DISTINCT, maar dat kan alleen wanneer je fields niet blob, image of (n)text (Sqlserver) zijn.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

MySQL heeft daar geen last van, die kan ook text/blob's daar gebruiken en ik ga er maar voor het gemak van uit dat als iemand geen database noemt, het met grote kans MySQL is ;)

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Group by geeft daarbij noghet voordeel dat je ook het aantal (count) erbij kan zetten.
Lijkt me ook wel interessant

Verwijderd

wat ik altijd doe in dit soort gevallen is een array aanmaken met ids die al zijn geweest

dus iets als:
PHP:
1
2
3
4
5
6
7
8
if (!$result = mysql_query("SELECT * FROM posts WHERE user='$username' ORDER BY date DESC")) die("oopsie..");
$topic_index = array();
while($topics = mysql_fetch_object($result)) {
  if (!in_array($topics->topic_id, $topic_index)) {
    $topic_index[] = $topics->topic_id;
    print "topic: " . $topics->topic_title . "<br>";
  }
}

zoiets..

indit geval negeerd hij de topics die er al instaan dus moet de ORDER BY date DESC staan zodat hij de laatste topics eerst doet :)
Pagina: 1