Ankündigung

Einklappen
Keine Ankündigung bisher.

warum funktioniert das nicht und ich bekomme die Fehlermeldung?

Einklappen

Neue Werbung 2019

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

  • warum funktioniert das nicht und ich bekomme die Fehlermeldung?

    Invalid argument supplied for foreach()

    PHP-Code:
    $name $_SESSION['userid'];

    echo 
    "Hallo ".$userid;


    echo 
    "<br> <br>";

    $pdo = new PDO('mysql:host=localhost;dbname=Care''User''PW');

    $sql "SELECT HausName, Strasse FROM customer WHERE id LIKE $userid";
    foreach (
    $pdo->query($sql) as $row) {
     echo 
    "Haus: ".$row['HausName']."<br />";    
       echo 
    "Straße: ".$row['Strasse']."<br /><br />";
    }
    ?> 

  • #2
    Ja guck doch mal mit var_dump() rein - ist das überhaupt ein Array? Implementiert es das Iterator-Interface? Oder kommt da vielleicht nur NULL oder FALSE raus, weil dein Statement nichts liefert? Du fragst auch gar nicht nach Fehlern: $pdo->errorInfo(). Stell PDO auf deiner Entwicklungsmaschine einfach so ein, dass es direkt Fehler wirft:

    PHP-Code:
      $pdo = new PDO('mysql:host=localhost;dbname=someTable''username''password', array(   PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION )); 
    [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

    Kommentar


    • #3
      Weil du noch "fetchen" musst. https://php-de.github.io/jumpto/pdo/#no-param

      Ausserdem hat eine DB Verbindung inmitten der Ausgabe nichts verloren! EVA anschauen: https://php-de.github.io/jumpto/eva-prinzip/

      Und was soll das für ein Betreff sein, bitte einen vernünftigen nehmen. Bitte aussagekräftige Threadtitel verwenden
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Fetchen muss man hier nicht, er verwendet ja dummer Weise kein PDOStatement-Objekt. PDO::query() liefert i.d.R. eine Resource, die aber durchaus per foreach direkt durchlaufen werden kann.
        Ich tippe mal darauf, dass die Query fehl schlägt, worauf wohl auch chorn hinaus wollte, nehme ich an. Ich werfe mla den Begriff Datentyp in den Raum.
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          teste mal:

          PHP-Code:
          ........................id LIKE '$userid'" 
          wobei ich auch eher zu #4 Datentyp tendiere.

          Kommentar


          • #6
            Ich möchte das die Informationen aus dem Übergeben userid angezeigt werden

            Kommentar


            • #7
              und tschüss, ...kopfschüttel...

              Kommentar


              • #8
                Arne Drews stimmt, danke.. Ich mache es kaum mehr ohne Statment.. Egal.

                der122345 Erstelle das DB Objekt mal wie oben bzw. in dem verlinken von mir oben gezeigt. Dann solltest du auch Fehler angezeigt bekommen: https://php-de.github.io/jumpto/pdo/#create-conn
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  okay jetzt habe ich ein bisschen den Faden verloren gibt es für meinen Fall ein Beispiel?

                  Kommentar


                  • #10
                    Ja in dem Link oben, bzw. Beiträgen oben.
                    The string "()()" is not palindrom but the String "())(" is.

                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar


                    • #11
                      Da stimmt ja nix, wenn ich genauer hinsehe...
                      PHP-Code:
                      $name $_SESSION['userid'];

                      echo 
                      "Hallo ".$userid// <-- Wo kommt $userid bitte her???

                      $sql "SELECT HausName, Strasse FROM customer WHERE id LIKE $userid"// <-- Hier steckt der Fehler! Ob Datentyp oder falsch maskiert ergibt sich, wenn $userid gelöst ist.
                      foreach ($pdo->query($sql) as $row) {
                       echo 
                      "Haus: ".$row['HausName']."<br />";    
                         echo 
                      "Straße: ".$row['Strasse']."<br /><br />";

                      Dreh mal Dein ErrorReport hoch, dann sollte er Dir schon verklickern, was da falsch ist...
                      Competence-Center -> Enjoy the Informatrix
                      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                      Kommentar


                      • #12
                        Zitat von Arne Drews Beitrag anzeigen
                        Dreh mal Dein ErrorReport hoch, dann sollte er Dir schon verklickern, was da falsch ist...
                        Bzw. den PDO Error-Report-Level.

                        Kommentar


                        • #13
                          Lerne Grundllagen.

                          Kommentar

                          Lädt...
                          X