Ankündigung

Einklappen
Keine Ankündigung bisher.

Abfrage über 2 Tabellen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Abfrage über 2 Tabellen

    Irgendwie ist meine Logik heute auf Urlaub.

    Ich habe 2 Tabellen

    Kategorie & Einträge
    Code:
    cat
    catid
    name
    
    
    eintrag
    eintragid
    name
    catid
    Jetzt habe ich es so, dass ich alle Kategorien abfrage und dann für jede Kategorie eine Abfrage für die Einträge mache und diese ausgebe.

    Bei 20 Kategorien wären das 21 Abfragen.
    Geht das irgendwie einfacher?

    Hab mir nun gedacht, dass ich es so mache, aber wie geb ich dann die Kategorien und die einzelnen Einträge aus?
    PHP-Code:
    SELECT
        eintrag
    .*, cat.*
        
    FROM " . TABLE_PREFIX . "eintrag as eintrag
        left join 
    " . TABLE_PREFIX . "eintragcategorie as cat
        on
    cat.eintragcategorieid =  eintrag.eintragid )

  • #2
    Bitte noch mal ganz langsam: Wo ist jetzt genau Dein Problem bei der Join-Geschichte?

    Gruß Jens

    Kommentar


    • #3
      Naja, wie geb ich das jetzt am schönsten aus?

      Bis jetzt habe ich es so:
      PHP-Code:
      //pseudocode
      $cats select catnamecatid from categorie
      while ($cat fetch($cats))

       echo 
      'categorie: ' $cat['name']

       
      $einträge select from eintrag where catid $cat[catid
       
      while (
      $eintrag fetch($einträge))
       {
           echo 
      einzelner eintrag...
       }
       echo 
      'kategorie zu ende';
      }
      echo 
      'ende'
      Damit habe ich bei 20 Kategorien 21 Queries.
      Nun frag ich mich gerade, ob man das nicht über einen Query und Join lösen kann?

      Kommentar


      • #4
        Ja, kann man. Dann halt nur mit einer While-Schleife und ohne weitere Query in der While-Schleife.

        Dein Join ist doch eigentlich schon fast in Ordnung. Du solltest von Kategorie zu Eintrag joinen, und SELECT * is evil, aber ansonsten geht das schon in die richtige Richtung.

        Gruß Jens

        Kommentar


        • #5
          Ja, das war nur Pseudocode.

          Und der Fehler war, dass ich in der 2. Schleife die Prüfung vergessen habe, dadurch habe ich in jeder Kategorie jeden Eintrag ausgelesen...

          Manchmal sieht man vor lauter Bäumen echt den Walt nicht mehr

          Kommentar

          Lädt...
          X