1.4k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo,

leider wird mir über die Funktion mysqli_fetch_row() nicht der erste Datzensatz
angezeigt, sondern erst der zweite.


<?php
$sql = mysqli_query($connection, 'select name from projects;');

if(!mysqli_fetch_row($sql))
echo '<label>Keine aktuellen Projekte vorhanden</label><br />';
else
{
//echo '<select><option></option>';
var_dump(mysqli_fetch_row($sql));

//while($result = mysqli_fetch_row($sql))
//echo '<option>'.implode($result).'</option>';
?>


In der projects-Tabelle habe ich mehrere Datensätze mit Namen test1, test2, test3
usw. Wenn ich die Datensätze test2 und test3 lösche, gibt var_dump() als Ergebnis
NULL aus. Füge ich diese wieder in die Datenbank ein, zeigt mir var_dump(), dass
diese beiden vorhanden sind, aber eben nicht der Erste.

Kann mir jemand weiterhelfen?

3 Antworten

0 Punkte
Beantwortet von
sehe grad, dass ich ein wenig Quelltext weggelassen habe :D. Also
nochmal:


<?php
$sql = mysqli_query($connection, 'select name from projects;');

if(!mysqli_fetch_row($sql))
echo '<label>Keine aktuellen Projekte vorhanden</label><br />';
else
{
echo '<select><option></option>';
//var_dump(mysqli_fetch_row($sql));

while($result = mysqli_fetch_row($sql))
echo '<option>'.implode($result).'</option>';

echo '</select><br />';
}
?>
0 Punkte
Beantwortet von ennok Experte (1.2k Punkte)
if(!mysqli_fetch_row($sql))


...ruft das erste Ergebnis ab...

while($result = mysqli_fetch_row($sql))
echo '<option>'.implode($result).'</option>';


...ruft das 2. bis letzte Ergebnis ab.

Um zu prüfen, ob die Abfrage überhaupt ein Ergebnis geliefert hat, benutzt man mysqli_num_rows().
0 Punkte
Beantwortet von
Tatsache, hat funktioniert. Danke ;).

Hatte ich wohl anders in Erinnerung. Eine schöne Woche noch.
...