mysqli ignoring the first row in a table
Here is the code I'm using to pull the data from the table:
require_once 'connect.php';
$sql = "SELECT * FROM `db-news`";
$result = $mysqli->query($sql);
$row = mysqli_fetch_assoc($result);
while ($row = $result->fetch_assoc()) {
printf ($row['pagename'].' - To edit this page <a href="editnews.php?id='.$row['id'].'">click here</a><br>');
}
Always the first row is ignored. I'm not calling mysqli_fetch_assoc
twice as with some other examples on SO. I've tried changing echo
to printf
in the while loop and still the first row is ignored in the DB.
I'm at a loss as to what I should try next?
mysqli not ignoring it but actually you are fetching first row before while loop
$row = mysqli_fetch_assoc($result); //remove this line
while ($row = $result->fetch_assoc()) {
....
}
The problem is the first row of the following excerpt:
$row = mysqli_fetch_assoc($result);
while ($row = $result->fetch_assoc()) {
The mysqli_fetch_assoc
already gets the first row (and thus in the while loop you are already 1 step further).
You should either put that line instead of the $reslut->fetch_assoc
part into the while statement or delete it. That should solve the problem.