Sven: bei mehreren gleichen Einträgen nur einen anzeigen

Hallo,
vielleicht stelle ich hier auch eine SQL Fragen aber meistens hängt das ja nahe zusammen...
Also: folgendes Problem:

Ich habe eine Downloadseite wo der Admin selbst downloads anlegen kann.
Diese sollen in Kategorien angezeigt werden, welche natürlich beim hochladen bestimmt werden.
Desweiteren kann der Admin selbst kategorien anlegen, wenn mal eine weitere benötigt wird.
Ich dachte mir dazu brauche ich 2 Tabellen in der DB:
eine "Kategorien" in welcher nur die Kategorien und eine id gespeichert werden.
Dann eine "Downloads" in welcher die Pfade zum download, der ProduktName, Downloadname, Datum, Größe und eben auch die Kategorie in welche der jeweilige Download gehört.

Nun habe ich aber das Problem, wenn ich "select kategorie from download where produktname=$produktname" (ich will die möglichen Kategorien für das Produkt anzeigen lassen) mache das ich, falls in einer Kategorie 2 oder mehr Downloads angezeigt werden auch die Kategorie mehrmals auftaucht. sieht etwas blöd aus..

wie kann ich das ändern?

kann man auch sagen das die DB wenn einträge gleich sind, diesen nur einmal ausgibt?

oder muss man das auf der PHP Seite lösen.
Dieses Problem beschäftigt mich schon seit tagen..
Vielen Dank schonmal.
Ich hoffe ich habe mich verständlich ausgedrückt.
sven

  1. Hallo.

    Ich hoffe ich habe mich verständlich ausgedrückt.

    Nicht ganz. Wenn Du den Namen der Kategorie willst, dann müsste Deine Abfrage doch an die Tabelle "Kategorien" gehen und nicht an "download". Also eher irgendwas
    SELECT name FROM kategorien WHERE ID=$kategorie_id_aus_download

    Oder was willst Du für was abfragen?

    Grüße aus Würzburg
    Julian

    1. Hallo.

      Nicht ganz. Wenn Du den Namen der Kategorie willst, dann müsste Deine Abfrage doch an die Tabelle "Kategorien" gehen und nicht an "download". Also eher irgendwas
      SELECT name FROM kategorien WHERE ID=$kategorie_id_aus_download

      Oder was willst Du für was abfragen?

      Hmm...nicht ganz was ich meine, das ist mir schon klar..
      in der Tabelle Kategorien stehen alle Möglichen kategorien, aber nicht jedes Produkt muss auch zu allen Kategorien einen Download haben. Ich will dem User nur die Möglichkeiten zur Auswahl geben, die auch zu etwas führen, sprich wenn in der jeweiligen Kategorie ein Eintrag ist.

      Grüße aus Würzburg
      Julian

      aus dem Ruhrgebiet, Sven

      1. Morgen.

        Ok, also zur Sicherheit jetzt nochmal eine Begriffsklärung (wie ich's jetzt verstehe). Produkt ist irgendwas, das in (mindestens) eine Kategorie fällt und zwischen 0 und x Downloads aus 0 bis y Kategorien haben kann.

        Dann dürfte nur die Abfrage fehlen, ob die SQL-Anweisung auch Treffer erzielte:
        $result = SELECT name FROM kategorien WHERE ID=$kategorie_id
        if(mysql_num_rows($result) >= 1) { // Ausgabe }

        Grüße aus Würzburg
        Julian

        1. Morgen.

          Ok, also zur Sicherheit jetzt nochmal eine Begriffsklärung (wie ich's jetzt verstehe). Produkt ist irgendwas, das in (mindestens) eine Kategorie fällt und zwischen 0 und x Downloads aus 0 bis y Kategorien haben kann.

          Hmm...eigentlich ist es genau umgekehrt. Zu einem Produkt gibt es immer Downloads welche in Kategorien unterteilt sind. aber nicht zu jedem Produkt gibt es downloads in allen Kategorien, es sollen daher auch nur die vorhandenen angezeigt werden.
          Soweit kein thema, aber es kann auch sein das in einer kategorie mehrere Downloads angeboten werden ( z.B. Updates)
          und da soll er nur einmal die Kategorie darstellen, obwohl es da mehrere Downloads gibt.

          sven

  2. hallo,
    bin mir auch nicht sicher, ob ich dich richtig verstehe, aber das fällt mir ohne lang nachzudenken ein:

    SELECT DISTINCT kategorie
    FROM download
    WHERE produktname=$produktname";

    lgz

    Hallo,
    vielleicht stelle ich hier auch eine SQL Fragen aber meistens hängt das ja nahe zusammen...
    Also: folgendes Problem:

    Ich habe eine Downloadseite wo der Admin selbst downloads anlegen kann.
    Diese sollen in Kategorien angezeigt werden, welche natürlich beim hochladen bestimmt werden.
    Desweiteren kann der Admin selbst kategorien anlegen, wenn mal eine weitere benötigt wird.
    Ich dachte mir dazu brauche ich 2 Tabellen in der DB:
    eine "Kategorien" in welcher nur die Kategorien und eine id gespeichert werden.
    Dann eine "Downloads" in welcher die Pfade zum download, der ProduktName, Downloadname, Datum, Größe und eben auch die Kategorie in welche der jeweilige Download gehört.

    Nun habe ich aber das Problem, wenn ich "select kategorie from download where produktname=$produktname" (ich will die möglichen Kategorien für das Produkt anzeigen lassen) mache das ich, falls in einer Kategorie 2 oder mehr Downloads angezeigt werden auch die Kategorie mehrmals auftaucht. sieht etwas blöd aus..

    wie kann ich das ändern?

    kann man auch sagen das die DB wenn einträge gleich sind, diesen nur einmal ausgibt?

    oder muss man das auf der PHP Seite lösen.
    Dieses Problem beschäftigt mich schon seit tagen..
    Vielen Dank schonmal.
    Ich hoffe ich habe mich verständlich ausgedrückt.
    sven