PHP - Get array of objects from query result

15,224

Solution 1

Or you could move the assignment from the while condition to the while body like:

<?php
while ($entry = mysql_fetch_object($result)) {
   $a[] = $entry;
}

Solution 2

mysql_fetch_object actually returns FALSE if there are no more rows. I would do this:

$a = array();
while (($row = mysql_fetch_object($result)) !== FALSE) {
  $a[] = $row;
}
Share:
15,224
Valentin Despa
Author by

Valentin Despa

Hello there, thanks for checking my profile page. I am dedicated software developer and open source lover. Interested in databases and tech stuff: PHP, Java, MySQL / MariaDB, JavaScript, Angular.

Updated on July 18, 2022

Comments

  • Valentin Despa
    Valentin Despa almost 2 years

    Simplified version of the problem:

    So I have this query which is inside a function.

    $query = "SELECT * FROM users";
    $result = mysql_query($query);
    

    How I want to use mysql_fetch_object() to get an object from a row.

    Because in the end I wanted to get an array of objects I do this:

    while ($a[] = mysql_fetch_object($result)) { // empty here }
    

    In the end the function just returns $a. And it works almost fine.

    My problem is that mysql_fetch_object will return at the end a NULL "row" (which is normal because the result ended but I still assigned it to the array).

    Any ideas on how to do this in a decent way? Thanks in advance.