How to iterate by row through a mysql query in php
48,246
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf("ID: %s Name: %s", $row[0], $row[1]);
}
or using MYSQL_ASSOC will allow you to use named columns
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf("ID: %s Name: %s", $row["id"], $row["name"]);
}
Author by
AFK
Updated on July 09, 2022Comments
-
AFK almost 2 years
Ok, So I am trying to query my database and select all rows that have a certain value. After that I turn the query into an array with mysql_fetch_array(), then I tried iterating by row through the fetched array using a for each loop.
<?php $query = mysql_query("SELECT * FROM users WHERE pointsAvailable > 0 ORDER BY pointsAvailable Desc"); $queryResultArray = mysql_fetch_array($query); foreach($queryResultArray as $row) { echo $row['pointsAvailable']; } ?>
Though when I do this for any column besides the pointsAvailable column say a column named "name" of type text it only returns a single letter.
How do I iterate through a returned query row by row, and be allowed to fetch specific columns of data from the current row?
-
AFK about 14 yearsThank you worked perfectly. So does it actually just return one row each time mysql_fetch_array is called on the query resource?
-
Trevor about 14 yearsEach time mysql_fetch_array is called, it returns the current row and moves the data pointer ahead to the next row. When all rows are traversed, it returns false and the while loop ends.