theresa: datenbankabfrage, erstes ergebnis wird nicht angezeigt?!

Liebe Leute!

Ich bin am verzweifeln!!
Meine Datenbankabfrage lautet wie folgt:

$query_bereiche = "SELECT buchstabe, bezeichnung FROM bereiche";
$bereiche = mysql_query($query_bereiche, $mysql) or die(mysql_error());
$row_bereiche = mysql_fetch_row($bereiche);

do  {
 $aktbuchst = $row_bereiche['buchstabe'];
 $aktberbez = $row_bereiche['bezeichnung'];
 print"<input name='bereich' type='checkbox' value='$aktbuchst'> $aktberbez<br>";
 }
while ($row_bereiche = mysql_fetch_assoc($bereiche));

Die Ausgabe funktioniert super, bis auf die Tatsache das mir der erste Eintrag dieses Tables nicht angezeigt/ausgegeben wird.

Ich seh den Fehler einfach nciht, bitte um dringende Hilfe.
die verzweifelte theresa

  1. Hi,

    Ich bin am verzweifeln!!

    don't panic.

    $row_bereiche = mysql_fetch_row($bereiche);

    Die erste Zeile wurde nun gelesen. Die nächste Zeile, die eingelesen werden kann, ist die zweite.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Dankeschööööööön!

      Ich hatte den totalen Denkfehler. ;)

    2. echo $begrüßung;

      $row_bereiche = mysql_fetch_row($bereiche);

      Die erste Zeile wurde nun gelesen. Die nächste Zeile, die eingelesen werden kann, ist die zweite.

      Das macht doch nichts, die folgende do-while-Schleife greift doch auch darauf zu. Allerdings nutzt theresa beim ersten Mal fetch_row und greift dann assoziert darauf zu und nicht mit Spaltennummern. Dann verwendet sie fetch_assoc und der Zugriff auf die Werte klappt.

      Ein auf E_ALL gesetztes error_reporting hätte einen Hinweis darauf gegeben, dass $row_bereiche['buchstabe'] beim ersten Mal nicht vorhanden ist.

      Allgemein üblich und auch zweckmäßiger beim Ergebnislesen wäre aber eine while-Schleife statt einer do-while-Schleife.

      echo "$verabschiedung $name";

      1. Hallo,

        genau:

        $row_bereiche = mysql_fetch_row($bereiche);

        Das liefert nur indizierte Elemente, aber _ohne_ Namen

        Allgemein üblich und auch zweckmäßiger beim Ergebnislesen wäre aber eine while-Schleife statt einer do-while-Schleife.

        Das ist nur Gewöhnungssache. Man muss aufgrund der notwendigen Vorinitialisierung aber an zwei Stellen korrigieen, falls etwas nicht stimmt.

        Außerdem muss man bei den fußgesteuerten Schleifen möglichsrt vor dem
        Preload prüfen, ob das überhaupt sinnvoll ist. Das gibt also zwei Vergleiche, wo bei intelligent formulierter kopfgesteuerter Schleife nur der eine in der Schleife notwendig ist.

        LG

        Chris