mysql + foreach = ausgabe zerhackt

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

  • mysql + foreach = ausgabe zerhackt

    Sooo, hallo erstmal

    so direkt nach der anmeldung - erst ma ne frage
    mich verwirrt es grade aufs äusserste...

    Ich lese aus ner MySQL was aus, sobald ich eine foreach-schleife benutze, zerhackstückelt er mir alles...
    Selbst bei einer einfachen Dummy-Datenbank + dummyscript macht er böse Sachen - Damit ihr seht was los ist, mal kurz die Codes...

    Die SQL-Tabelle:
    Code:
    -- Tabellenstruktur für Tabelle `test`
    -- 
    
    CREATE TABLE `test` (
      `id` int(5) unsigned zerofill NOT NULL auto_increment,
      `name` varchar(20) NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
    
    -- 
    -- Daten für Tabelle `test`
    -- 
    
    INSERT INTO `test` VALUES (00001, 'bla 1');
    INSERT INTO `test` VALUES (00002, 'bla 2');
    INSERT INTO `test` VALUES (00003, 'bla 3');
    INSERT INTO `test` VALUES (00004, 'bla 4');
    INSERT INTO `test` VALUES (00005, 'bla 5');

    Meine PHP-Datei:
    PHP-Code:
    <?php
    mysql_connect
    ($server,$user,$pass);

    mysql_select_db("ruhig");

    $sql mysql_query("SELECT id, name FROM test LIMIT 0, 30");


    $data    =    mysql_fetch_array($sql);
    foreach (
    $data as $werte) {
        echo 
    $werte['id'].' '.$werte['name'].'<br>';
    }
    ?>


    Soweit so gut, das ist so einfach, wo steckt denn dann der Fehler???
    Der Aufruf der test.php erzeugt folgende Ausgabe:
    Code:
    0 0<br>0 0<br>b b<br>b b<br>
    Ich sehe einfach nicht, was da los ist, es sind nicht die ersten zeichen, es sind 4 anstatt 5 Ausgaben.......
    Ich versteh einfach nicht, was da los ist, ganz zu schweigen vom Problem, eine einfache foreach-schleife mit selber definiertem Array funktioniert astrein...Gebe ich nur den $data[name]-wert aus, gibt er mir den Datensatz Nr.1 (sql-id=001) aus....aber den wenigstens richtig...
    Wenn ich den query mit mysql_fetch_assoc verarbeite, ist die Ausgabe "0 0<br>b b<br>", die hälfte fehlt also.
    Und ich verstehs einfach nicht...



    Wäre jemand wohl so freundlich, mir zu erklären, was da los ist??
    Was mach ich falsch ??
    Ich dreh mich seit gut 3 stunden im Kreis und schlag Purzelbäume, glaube das ich bisschen bescheuert bin...und das alles, während ich gleichzeitig mit meinen Knickohren schlackere, selbstverständlich

    jemand ne Idee ??

    Vielen, vielen Dank schonmal im Voraus,

    Gruß,
    Der nette Onkel von nebenan....

  • #2
    problem behoben - unwissenheit bleibt

    Also, die mit ner while-schleife funktionierts - eben hab ichs schonmal probiert, aber da hab ich offensichtlich was anders gemacht - fragt mich bitte nicht was

    Nja, das Problem ist jedenfalls erledigt - ich ändere das in eine Frage...



    foreach ist doch genau dafür da, zum array durchlaufen.... oder täusch ich mich??


    Wieso funktioniert das dann nicht ??


    Erleuchtet mich, oh ihr PHP-Wais...ääähhh....Weisen


    Gruß,
    Tobi

    Kommentar


    • #3
      Upps

      hoppala......falscher knopf....

      sollte natürlich als Antwort in den vorherigen Thread... *rotwerd*

      Wer lesen kann iss klar im vorteil.....ich weiß, packe mir schon an die eigene Nase

      und löschen lässt er mich nicht - angeblich Account noch nicht aktiviert... hmm.....komisch

      Also, sorry nochmals, und bitte löschen bzw. verschieben @ Mods



      Thx a lot

      der einzig wahre Deppscheff
      Zuletzt geändert von webscheff; 22.05.2006, 03:07.

      Kommentar


      • #4
        Schau dir mal an, über was du da iterierst!
        PHP-Code:
        $data    =    mysql_fetch_array($sql);
        var_dump($data); 
        ... genau, über die Felder eines Datensatzes, mehr holst du nämlich überhaupt nicht aus der DB.

        Kommentar


        • #5
          jaja, die liebe blindheit

          hmmm......

          Das iss ja super....mensch bin ich doof

          Okay, verstanden, aufgeschrieben, und versprochen, dass ich nur noch selten so doofe fragen stelle


          merci für die schnelle Antwort,

          der wiedermal ein wenig weisere...

          deppscheff

          Kommentar

          Lädt...
          X