Ankündigung

Einklappen
Keine Ankündigung bisher.

PDO Query vereinfachen

Einklappen

Neue Werbung 2019

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

  • PDO Query vereinfachen

    Moin Freunde der Entwicklung,

    ich nutze seid einiger Zeit PDO Querys in simpelster Form. Jetzt hatte ich einen Moment, in den ich dachte "Warte mal das muss doch auch besser gehen".

    Da ich irgendwie allerdings zu keiner Lösung komme wollte ich einmal die Profis hier unter euch nach einen Tipp fragen.

    Aktuelle Situation:

    Ich habe eine Tabelle "meinebilder" mit Bilddaten, die alle eine automatische generierte id "id" haben.

    Jetzt habe ich eine weitere Tabelle "bildverbindung" in der ich einige der Bilder aus "meinebilder" über die "id" hier allesdings als "bildid" verknüpft habe.

    Struktur:

    meinebilder
    -- id
    -- name
    -- datum

    bildverbindung
    -- id
    -- bildid
    -- verbindungname


    Normalerweise sieht mein Code jetzt so aus:

    PHP-Code:

    $bilder 
    $pdo->prepare("SELECT * FROM meinebilder");
    $bilder->execute(array());
    while(
    $row $bilder->fetch()) {
      echo 
    $row["id"]." - ".$row["name"];

    Läuft wie es soll alles gut. ABER wenn ich jetzt nur alle Bilder aus der Tabelle meinebilder haben möchte, die in bildverbindung zugeordnet sind, dann wirds, denke ich, unschön:

    PHP-Code:

    $bilder 
    $pdo->prepare("SELECT * FROM meinebilder");
    $bilder->execute(array());
    while(
    $row $bilder->fetch()) {

        
    $isConnected 0;
        
    $bildverbindungen $pdo->prepare("SELECT * FROM bildverbindungen WHERE bildid = ?");
        
    $bildverbindungen->execute(array($row["id"]));
        while(
    $row2 $bildverbindungen->fetch()) {
            
    $isConnected++;
        }

        if(
    $isConnected != 0){
            echo 
    $row["id"]." - ".$row["name"];
        }

    Ich bin mir sicher, das zwei PDO-Querys ineinander totaler Käse sind und das es wahrscheinlich alles innerhalb einer Query gehandelt werden kann oder? Weiß nur einfach nicht wonach ich suchen muss bzw. wie das gehen soll.

    Ich danke euch für eure Tipps und wünsche allen einen schönen Abend.





  • #2
    Das Stichwort wäre JOIN

    Kommentar


    • #3
      hallo Coding
      da ist nun nichts fortgeschrittenes dran, bitte lese zukünftig die announce - vor dem posten
      https://www.php.de/forum/webentwickl...rf-hier-posten

      select * ist auch pfui

      Kommentar


      • #4
        MOD: Verschoben von PHP-Fortgeschrittene

        Kommentar


        • #5
          Wie bereits gesagt geht das einfach mit einem inner join

          select *
          from meinebilder mb
          inner join bildverbindungen bv on (bv.bildid = mb.id)
          gewöhne dir aber gleich mal das select * ab. Auch wenn es mehr tipparbeit ist, schreibe immer alle gewünschten spaltennamen explizit in das select.

          Gruß

          Claus
          Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

          Kommentar


          • #6
            Hallo jonas3344, tomBuilder, Thallius,

            ich danke euch sehr für eure Hilfe!

            Den Hinweis mit * werde ich zukünftig berücksichtigen. Mir ging es dabei gar nicht um die zusätzliche Tipparbeit sondern viel mehr darum, dass ich noch nicht genau wusste, ob ich nicht doch alle Daten später benötige ^^

            Ich wünsche euch ein schönes Wochenende.

            Grüße

            Kommentar

            Lädt...
            X