Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler in While-Schleife

Einklappen

Neue Werbung 2019

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

  • Fehler in While-Schleife

    Kann mir jemand helfen, ich komme und weiß auch einfach nicht mehr weiter?
    Ich erzeuge ein PDF mit verschiedenen Daten und strauchele an dieser zweiten scheinbar simplen Abfrage.

    PHP-Code:
    $sql2 "SELECT z.name From zielgruppen z WHERE z.id IN ($zielgruppenid)";    
    $result2 mysql_query($sql2);
                while (
    $row2 mysql_fetch_array($result2)){
     
    $zielgr    $row2["name"]. ", " ;    } 
    Die Zielgruppen (können mehrere sein) sind bereits in der Variable "$zielgruppenid " durch ein Komma getrennt, korrekt abgespeichert.
    Kann mir jemand sagen, warum die Variable $zielgr immer wieder überschrieben wird und nur den letzten Wert ausgibt? Übersehe ich hier nur einen syntaktischen Fehler oder hat das etwas mit dem IN in der Where-Klausel zu tun (obwohl es bei all meinen Versuchen unerheblich war, ob dort IN oder "=" stand) oder hat das etwas mit FPDF zu tun ... ? Hoffentlich kann mir jemand auf die Sprünge helfen, woran ich bei meiner Fehlersuche noch denken kann. Beste Grüße Marie

  • #2
    Entweder

    Code:
    $zielgr = $zielgr . $row2["name"]. ", " ; 
    oder

    Code:
    $zielgr .= $row2["name"]. ", " ; 
    Gruß

    Claus

    Kommentar


    • #3
      Vergiß die mysql_* Funktionen ( roten Kasten beachten! ), verwende MySQLi oder PDO.
      Einfaches PDO-Beispiel: http://www.php-rocks.de/thema/49-ein...tatements.html

      Zum Thema: Was erwartest Du? Du schreibst in der Schleife ja für jeden Datensatz $zielgr neu.
      Hinweis hat Thallius schob gegeben.

      Kommentar


      • #4
        Hallo Thallius,
        vielen lieben Dank, Du hast mir sehr geholfen. . Gruß Marie

        Kommentar


        • #5
          Solltest du auf PDO umsteigen, brauchst du noch nicht mal eine Schleife:
          PHP-Code:
          $sql   "SELECT z.name From zielgruppen z WHERE z.id IN ($zielgruppenid)";
          $stmt  $pdo->query($sql);
          $names $stmt->fetchAll(PDO::FETCH_COLUMN0);
          echo 
          implode(', '$names); 

          Kommentar


          • #6
            Zitat von Dormilich Beitrag anzeigen
            Solltest du auf PDO umsteigen, brauchst du noch nicht mal eine Schleife
            Geht mit MySQLi auch, siehe http://php.net/manual/de/mysqli-result.fetch-all.php

            Kommentar


            • #7
              Stimmt, implode() ignoriert ja die Array Keys.

              Kommentar

              Lädt...
              X