SQLite und while()

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

  • SQLite und while()

    Ich habe mir gestern mal SQLite angeguckt und finde es recht interessant. Nun habe ich mir mal bisl was zum Testen gebastelt nur frisst sich meine Anwendung innen Wolf wenn ich folgendes mache:
    Code:
    $result = sqlite_query("SELECT * FROM table ORDER BY ID DESC LIMIT 0,5");
    while($row = sqlite_fetch_array($result))
    {
     echo $row['name']."<br />\n";
    }
    Ohne das while() bekomme ich den Namen ausgegeben aber mit dem while() funktioniert es nicht. Wie kommt das?
    Admin of RealScripts

  • #2
    postw mal den html-quelltext.

    macht sqlite_fetch_array das gleiche wie die entsprechende mysql_ funktion?

    Kommentar


    • #3
      Es macht das gleiche aber wie ich herausgefunden habe, wird die while()-Schleife nicht abgebrochen wenn es keine Einträge mehr gibt. Dachte zuerst, dass es an meiner PHP Version liegt (4.3.4-dev) aber mit der 4.3.8 gehts auch nicht. Ich hab ma nen bug-report geschrieben aber kP ob ich da alles richtig ausgefüllt hab weil der ned inna liste steht und ich noch keine mail bekommen hab :!
      Admin of RealScripts

      Kommentar


      • #4
        ich glaube das arbeitet erst in version 5 korrekt oder nich?! teste einfach ma
        mfg

        Kommentar


        • #5
          oder mal mit sqlite_fetch_all probieren, dann in einer Schleife die Daten holen

          Kommentar


          • #6
            Also in PHP5 wird die while()-Schleife ebenfalls nicht abgebrochen. Zudem bekomm ich aber noch diese Fehlermeldung:

            Admin of RealScripts

            Kommentar


            • #7
              Fetches the next row from the given result handle. If there are no more rows, returns FALSE, otherwise returns an associative array representing the row data.
              ALso ich sehe keinen Grund, warum die Schleife nicht beendet werden sollte.

              Kommentar


              • #8
                Original geschrieben von TobiaZ
                ALso ich sehe keinen Grund, warum die Schleife nicht beendet werden sollte.
                /me too.

                ich würde mal mit var_dump() kontrollieren, was für einen wert und von welchem typ die funktion sqlite_fetch_array() jeweils zurückgegeben hat.

                (evtl. in einer for-schleife, um mit dem while nicht gegen unednlich zu rennen.)
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  naja sie tut es nicht.
                  Admin of RealScripts

                  Kommentar


                  • #10
                    naja sie tut es nicht.
                    geh am besten mal so vor, wie wahsaga da sagt. dann wirst du sehen, was passiert.

                    Kommentar


                    • #11
                      Original geschrieben von TobiaZ
                      geh am besten mal so vor, wie wahsaga da sagt. dann wirst du sehen, was passiert.
                      naja hab den Eintrag nicht gesehen. als ich auf antworteten geklickt hab war der noch nicht da. Naja nen var_dump() hab ich schonmal gemacht. die Daten sind da, nur 1000000000 mal das gleiche.

                      naja mit der for-schleife muss es ja gehen, da sqlite_num_rows ja 1 ausgibt und die for-schleife dann auch nur einmal durchläuft aber mit while() müsste es ja auch funktionieren!
                      Admin of RealScripts

                      Kommentar


                      • #12
                        offensichtlich wir da nicht zur nächsten row geswitcht oder so. sonst würden ja nicht x mal das gleiche kommen.

                        aber btw. mach mal ne abfrage die zwei ergebnisse oder mehr liefert. ist in meinen augen besser zum testen geeignet.

                        Kommentar


                        • #13
                          wenn das dann immer noch nicht wirklich funktionieren sollte, kannst du ja evtl. sqlite_array_query() verwenden.

                          dies liefert dir die komplette ergebnismenge gleich als PHP-array zurück, dann könntest du anschliessend zur ausgabe eine schleife über dieses array machen ...
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Original geschrieben von TobiaZ
                            offensichtlich wir da nicht zur nächsten row geswitcht oder so. sonst würden ja nicht x mal das gleiche kommen.

                            aber btw. mach mal ne abfrage die zwei ergebnisse oder mehr liefert. ist in meinen augen besser zum testen geeignet.
                            bei mehreren wird nur der neuste angezeigt :!

                            // Edit:
                            naja is ja auch DESC aber das er ned zum nächsten geht wird immer wahrscheinlicher...
                            Admin of RealScripts

                            Kommentar


                            • #15
                              Nun hab ich mal wieder nen var_dump() auf $row gemacht und nun siehts so aus:
                              Code:
                              array(10) {
                                [0]=>
                                NULL
                                ["ID"]=>
                                NULL
                                [1]=>
                                string(10) "Jan Pieper"
                                ["name"]=>
                                string(10) "Jan Pieper"
                                [2]=>
                                string(24) "webmaster@realscripts.de"
                                ["email"]=>
                                string(24) "webmaster@realscripts.de"
                                [3]=>
                                string(10) "1090850607"
                                ["datum"]=>
                                string(10) "1090850607"
                                [4]=>
                                string(13) "Test Numero 2"
                                ["eintrag"]=>
                                string(13) "Test Numero 2"
                              }
                              2 Einträge sind in der DB, den den man sehen kann is der neuste. Was ich merkwürdig finde sind die ersten paar Zeilen :! (naja den Rest auch :!)
                              Admin of RealScripts

                              Kommentar

                              Lädt...
                              X