aux: DB enthält mehrere gleiche Einträge ... nur einmal anzeigen?

Hallo,

wie bewerkstellige ich es, dass bei einer Datenbank-Abfrage bei mehreren gleichen Einträgen nur einer angezeigt wird?

Hintergrund:

Ich sitze grade an einer Linkliste, nach Kategorien geordnet. Es wird wohl so sein, dass jeder Eintrag die Angaben "URL, Beschreibung, Kategorie" enthält.

Ich lasse jetzt alle Kategorien auflisten... natürlich kann es sein, dass sich mehrere Links in derselben Kategorie befinden. In diesem Fall soll die Kategorie aber nur einmal aufgelistet werden.

Im Moment hab ich es so gemacht:

$abfrage = "SELECT * FROM de_links";
  $ergebnis = mysql_query($abfrage);
  while ($row = mysql_fetch_array ($ergebnis))
  {
  echo $row[kategorie];
  }

Aber nun listet er z. B. dreimal die Kategorie "Handwerk" auf. Wie bringe ich ihm bei, dass er jede nur einmal auflisten soll?

Grüsse
aux

  1. Hi,

    Aber nun listet er z. B. dreimal die Kategorie "Handwerk" auf. Wie bringe ich ihm bei, dass er jede nur einmal auflisten soll?

    mit "...group by HANDWERK"

    lg
    Reiner

    1. Hi,

      Aber nun listet er z. B. dreimal die Kategorie "Handwerk" auf. Wie bringe ich ihm bei, dass er jede nur einmal auflisten soll?

      mit "...group by HANDWERK"

      war natürlich Quatsch! Hatte DEine Aufgabenstellung zunächst falsch verstanden.

  2. Hallo,

    Hi,

    wie bewerkstellige ich es, dass bei einer Datenbank-Abfrage bei mehreren gleichen Einträgen nur einer angezeigt wird?

    SELECT DISTINCTROW ... FROM tbl_* WHERE id = ....
           ^^^^^^^^^^^

    Hintergrund:

    Ich sitze grade an einer Linkliste, nach Kategorien geordnet. Es wird wohl so sein, dass jeder Eintrag die Angaben "URL, Beschreibung, Kategorie" enthält.

    Ich lasse jetzt alle Kategorien auflisten... natürlich kann es sein, dass sich mehrere Links in derselben Kategorie befinden. In diesem Fall soll die Kategorie aber nur einmal aufgelistet werden.

    Im Moment hab ich es so gemacht:

    $abfrage = "SELECT * FROM de_links";
      $ergebnis = mysql_query($abfrage);
      while ($row = mysql_fetch_array ($ergebnis))
      {
      echo $row[kategorie];
      }

    Aber nun listet er z. B. dreimal die Kategorie "Handwerk" auf. Wie bringe ich ihm bei, dass er jede nur einmal auflisten soll?

    Wie wäre es damit:
    SELECT * FROM de_links AS a
    INNER JOIN de_kategorien AS b
    ON a.katid = b.id
    GROUP BY b.id

    Grüsse
    aux

    Greetz flo

  3. Hi

    wie bewerkstellige ich es, dass bei einer Datenbank-Abfrage bei mehreren gleichen Einträgen nur einer angezeigt wird?

    Hintergrund:

    Ich sitze grade an einer Linkliste, nach Kategorien geordnet. Es wird wohl so sein, dass jeder Eintrag die Angaben "URL, Beschreibung, Kategorie" enthält.

    Ich lasse jetzt alle Kategorien auflisten... natürlich kann es sein, dass sich mehrere Links in derselben Kategorie befinden. In diesem Fall soll die Kategorie aber nur einmal aufgelistet werden.

    Im Moment hab ich es so gemacht:

    $abfrage = "SELECT * FROM de_links";

    SELECT DISTINCT kagegorie FROM de_links;
    bzw.
    SELECT UNIQUE kategorie FROM de_links;

    Welche Variante zutrifft, hängt von der DB ab.
    Bei MySQL ist es DISTINCT

    Andreas