I have four rows in my table. Only three are shown.
$query = "SELECT * FROM table";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
while($row = mysql_fetch_array($result)) {
echo $row['id'];
}
The result is 234, but should be 1234.
What am I doing wrong?
$row = mysql_fetch_array($result);
This line already fetches the first entry. Thus in the while loop you fetch the second element.
Correctly it should be:
$query = "SELECT * FROM table";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
echo $row['id'];
}
Alternatively:
$query = "SELECT * FROM table";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
do {
echo $row['id'];
} while ($row = mysql_fetch_array($result));
You are already advancing the query buffer one row before the loop by calling mysql_fetch_array() outside of it. Remove that call and it should work as expected
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With