PHP mySQLi_fetch_all: iterate through each row

2019-01-27 09:42发布

I am retrieving the rows of my query as such:

$rows = mysqli_fetch_all($result, MYSQLI_ASSOC);

How can I do:

(PSEUDO CODE)
for each row in rows
  echo row

I can just "echo $rows" but that doesn't allow me to go through each row on a separate paragraph.

As a second question, how can I go through each column of a row:

(PSEUDO CODE)
for each row in rows
  for each column in row
    echo column

标签: php mysqli
4条回答
唯我独甜
2楼-- · 2019-01-27 10:06

I would use something like this:

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo $row['name_of_your_column'];
}

where result is:

$result = mysqli_query($connection, $query);
查看更多
▲ chillily
3楼-- · 2019-01-27 10:09

I have written a small code, hope it solves the query.

    //Query to be executed;
$qry="select * from `tableName`";
//Performs a query on the database;
//here conn is a link identifier returned by mysqli_connect or mysqli_init function;
$result=mysqli_query($conn,$qry);
//Gets the number of rows in a result;
$rowcount=mysqli_num_rows($result);
//Fetches all result rows as an associative array;
$row = mysqli_fetch_all($result,MYSQLI_ASSOC);
//Iterating each row;
for($i=0;$i<$rowcount;$i++)
{
    echo "<br> ".$row[$i]['`column_name_1`']." ".$row[$i]['`column_name_2`']." ".$row[$i]['`column_name_3`'];
}

Example Database Table Mysql Table snapshot Code

//here conn is a link identifier returned by mysqli_connect or mysqli_init function;
$conn = mysqli_connect("localhost","root","","nsgdb") or die('Error connecting to MySQL server.');
//Query to be executed;
$qry="select * from users";
//Performs a query on the database;
$result=mysqli_query($conn,$qry);
//Gets the number of rows in a result;
$rowcount=mysqli_num_rows($result);
//Fetches all result rows as an associative array;
$row = mysqli_fetch_all($result,MYSQLI_ASSOC);
//Iterating each row;
for($i=0;$i<$rowcount;$i++)
{
   echo "<br> ".$row[$i]['id']." ".$row[$i]['user']." ".$row[$i]['pass'];
}

Output of the code

查看更多
萌系小妹纸
4楼-- · 2019-01-27 10:15
$rows = mysqli_fetch_assoc($result, MYSQLI_ASSOC);

Use the mysqli_fetch_assoc function.

And the use the foreach as:

foreach($rows as $column => $value) {
  echo $column." = ".$value;
}

Note: You can also use foreach with mysqli_fetch_all.

查看更多
相关推荐>>
5楼-- · 2019-01-27 10:20

You pseudo code is all fine.. you just need to turn it into PHP....

Answer to first question:

// Loop through each row and print it
foreach( $rows as $row ):
   print_r( $row )
endforeach;

Second question.. something like:

foreach( $rows as $row ):
   foreach( $row as $col ):
      echo $col;
   endforeach;    
endforeach;
查看更多
登录 后发表回答