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"]);
}
Share:
48,246
AFK
Author by

AFK

Updated on July 09, 2022

Comments

  • AFK
    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
    AFK about 14 years
    Thank you worked perfectly. So does it actually just return one row each time mysql_fetch_array is called on the query resource?
  • Trevor
    Trevor about 14 years
    Each 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.