bekomme erst 2. Datensatz aus array

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

  • bekomme erst 2. Datensatz aus array

    Hi Leute,

    derzeit schreib ich ein kleinen Raumplaner für meine Arbeit und steh vor einem kleinen Problem. Um doppelte Zeiteinträge vermeiden zu können, frage ich die alten Zeiten aus der Datenbank ab. Hab mir mal anzeigen lassen, was er überhaupt überprüft und dabei festgestellt, dass er immer erst ab dem 2. Eintrag alles anzeigt... bin da etwas ratlo... zeig ich mal den ausschnitt

    Bastel mir hierzu die Zeiten wieder zusammen, da Sie aus der Datenbank mit : getreennt kommen. Sollte jemand einen einfacheren Lösungsansatz haben, immer her damit :-)

    $pruef = mysql_query("SELECT von, bis, feld, raum from raumplaner where feld = ".$_SESSION['feld']." and raum = '".$_SESSION['raum']."'") or die (mysql_error());
    $ja = mysql_fetch_array($pruef);
    if ($ja['feld'] == '') { $geht = 'leer'; } else { $geht = 'voll'; }/////////// Überprüfung, ob an diesem Tag bereits Daten eingetragen wurden
    $sv = array(array());
    $mv = array(array()); ///////////////////////
    $sb = array(array());
    $mb = array(array());
    $valt = array(array());
    $vneu = array(array());

    if($geht=='voll') {
    while ($ja = mysql_fetch_array($pruef))
    {
    $sv = substr($ja['von'], 0,2);
    $mv = substr($ja['von'], 3,4);
    $sb = substr($ja['bis'], 0,2);
    $mb = substr($ja['bis'], 3,4);

    $valt = $sv.$mv;
    $balt = $sb.$mb;


    $vneu = $_GET['svon'].$_GET['mvon'];
    $bneu = $_GET['sbis'].$_GET['mbis'];

    echo $valt."<br>";
    echo $balt."<br>";
    echo $vneu."<br>";
    echo $bneu."<br>";

    }

  • #2
    Re: bekomme erst 2. Datensatz aus array

    Das liegt schlicht und einfach daran, dass du direkt nach der Query mit
    PHP-Code:
    $ja mysql_fetch_array($pruef); 
    den ersten Datensatz bereits ausliest - also steht, wenn du in deiner While-Schleife auszulesen beginnst, der "Zeiger" schon auf dem zweiten Datensatz.

    Wenn du überprüfen willst, ob die Anfrage überhaupt Ergebnissätze zurückliefert, dann mache das nicht so überaus ungeschickt - sondern nutze die Funktion, die dafür gedacht ist: mysql_num_rows()



    OffTopic:
    Es ist echt erstaunlich, wie oft einem diese Fragestellungen á la "mein erster Datensatz wird verschluckt" begegnen.
    Die Anzahl der Leute, die offenbar gar nicht wissen, was sie da beim Auslesen eigentlich tun, scheint immens hoch zu sein ...
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Du schreibst oben

      $ja = mysql_fetch_array($pruef);
      if ($ja['feld'] == '') { $geht = 'leer'; } else { $geht = 'voll'; }

      dabei setzt er den offset ein weiter. Da ist dein erstes Feld. Mach lieber mit mysql_num_rows

      Kommentar


      • #4
        AU WEIA!!!!!!!!!!!!!!!!!!! Guten MORGEN!!! Das kommt davon, wenn man sich stundenlang mit nem Code abgibt..."Mann" sieht den Wald vor lauter Bäumen nicht!!! Tausend dank für die schnelle Antwort!!!

        Kommentar

        Lädt...
        X