Announcement

Collapse
No announcement yet.

foreach

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • foreach

    Hallo was ist am folgenden code falsch?! :

    foreach ($db->query($query) as $row)
    {
    echo $row[0]."####";
    echo $row[1]."####";
    echo $row[2]."####";
    echo $row[4]."####";


    }


    ich arbeite mit einer sqllite datenbank und den Zugriff mache ich wie folgt:
    $dir = 'sqlite:C:\xampp\XCY\balbalbal.db';
    $db = new PDO($dir) or doe ("cannot open the database");
    $query = "SELECT * FROM bill WHERE strftime('%W.%Y', time) = '".$auswahlKW.".".$year."' AND user = '".$auswahlname."' GROUP BY user DESC";


    könnt ihr mir sagen was falsch ist?
    Diese Fehlermeldung bekomme ich:

    Invalid argument supplied for foreach() in C:\xampp\htdocs\agfeo2\anrufe_1.php on line 52

  • #2
    Hallo,
    wenn das von PDO::query zurückgelieferte Objekt nicht iterierbar ist, dann ist offensichtlich bei der Abfrage ein Fehler aufgetreten. Ich kenn die Syntax von SQLLite nicht, aber normalerweise muss bei einer korrekten Gruppierung i.a.R. jede Spalte aus dem SELECT auch im GROUP BY aufgeführt werden, solange sie nicht aggregiert ist. Ich weiss nicht ob SQLLite hier genauso "nachlässig" ist wie MySQL.

    Gruß Falk

    P.S.: Bitte beschäftige dich mit den Grundlagen von Debugging und verpack deine Quelltexte hier in die entsprechenden Code-Tags, um Übersichtlichkeit und Lesbarkeit zu erhöhen!
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      http://php.net/manual/de/function.mysql-fetch-assoc.php
      Christian

      Comment


      • #4
        Ok hier ein ganz einfacher Zugriff mit abfrage:
        [HIGHLIGHT=php]
        $dir = 'sqlite:bill.db';
        $db = new PDO($dir) or doe ("cannot open the database");
        $query = "SELECT username FROM bill WHERE username = 'Bene'";

        foreach ($db->query($query) as $row)
        {
        echo $row[0]."####";
        echo $row[1]."####";
        echo $row[2]."####";
        echo $row[4]."####";


        }

        [/HIGHLIGHT]

        Klappt leider auch nicht.

        Fehler ->

        Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\agfeo2\sqlite_test.php on line 10

        Comment


        • #5
          Originally posted by xXSpikeXx View Post
          ...Klappt leider auch nicht.
          Originally posted by Falk Prüfer View Post
          Bitte beschäftige dich mit den Grundlagen von Debugging ...
          Was liefert ein Aufruf von PDO::errorCode bzw. PDO::errorInfo?
          Dein Aufruf von $db->query($query) liefert offensichtlich FALSE zurück und das tut es lt. Doku im Fehlerfall. Also solltest du mal den Fehler in deiner Datenbankabfrage suchen!

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment

          Working...
          X