while ($row mysql_fetch_array()) liefert einen Datensatz zuwenig

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

  • while ($row mysql_fetch_array()) liefert einen Datensatz zuwenig

    Hallo zusammen ! Bin neu hier und hab auch gleich ne Frage :

    Hab ne Seite gemacht auf der ich mit 3 Listmenüs aus 3 unterschiedlichen Tabellen Datenfelder aussuche und dann mittel POST und $_POST an eine neue Seite weiterleitet auf der die Anzahl der gefundenen Datensätze angezeigt wird. Das Problem ist nun, dass ich 4 Datensätz in der Tabelle habe, wovon aber nur 3 angezeigt werden. Ich habs auch mal mit anderen Datensätzen probiert und dabei festgestellt, dass immer der erste Datensatz verschluckt wird, sobald er in die while-schleife geht. Prüft man vor der Schleife mit mysql_num_rows die Anzahl der Datensätze, wird die richtige Anzahl (4) angezeigt.
    Hier mal der Code:

    PHP-Code:
    <?php
    $select_ku_lie 
    $_POST['select_ku_lie'];
    $select_art_num $_POST['select_art_num'];
    $select_fehlerart $_POST['select_fehlerart'];
    mysql_select_db($database_qa_db$qa_db);
    $sql "SELECT * FROM fehlerkosten WHERE name = '$select_ku_lie' AND art_num = '$select_art_num' AND fehlerart = '$select_fehlerart'";
    $res mysql_query($sql) or die(mysql_error());
    $row mysql_fetch_array($resMYSQL_BOTH);
    $totalRows mysql_num_rows($res);
    echo 
    "num_rows-Ergebnis= ".$totalRows."</br>";
    $i=0;
    while (
    $row mysql_fetch_array($resMYSQL_BOTH))
    {
    echo 
    "Kundenname = ".$row['name']."</br>";
    echo 
    "ID = ".$row['id']."</br>";
    echo 
    "Datum = ".$row['datum']."</br>";
    $i++;
    }
    echo 
    "Die Anzhal der in der Schleife ausgegebenen Daten beträgt: ".$i."</br>";
    ?>
    Die Zählvariable habe ich nur eingebaut, weil ich einfach mal prüfen wollte wie oft er durchläuft und das ist laut der Ausgabe 1x zu wenig.

    Noch ein paar Daten zur eingesetzten Technik:
    - Server ist ein SuSE Linux 9.0 Prof
    - PHP Version 4.3.3 als Modul im Apache 2.0 Webserver
    - MySQL 4.0.15
    - PHPMyAdmin 2.5.3

    Danke schonmal !

  • #2
    den ganzen text hättest du dir sparen können.

    ich ahbe nur den betreff gelesen. ....
    while ($row mysql_fetch_array()) liefert einen Datensatz zuwenig
    und die lösung ist ganz einfach ... du macht vor der while-schleife bereits einen fetch auf das result.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      ist ja klar:
      PHP-Code:
      // auslesen erster datensatz
      $row mysql_fetch_array($resMYSQL_BOTH);
      $totalRows mysql_num_rows($res);
      echo 
      "num_rows-Ergebnis= ".$totalRows."</br>";
      $i=0;
      // ausgabe rest
      while ($row mysql_fetch_array($resMYSQL_BOTH))
      {
      ... 
      Kissolino.com

      Kommentar


      • #4
        AAAhhhrrrgggg !

        Typischer Fall von Betriebsblind !

        Ja, is klar dadurch wird der Zeiger eine Position weiterbewegt *selbstohrfeig*.

        Danke fürs Augen öffnen !!

        Kommentar

        Lädt...
        X