user3070123
user3070123

Reputation: 159

Format array from sql query result

I have the following query

$sql = "SELECT nomInteretUser from userInteret where idUser='$id_user' ";
$result = $conn->query(sprintf($sql));

I want to produce an array with following structure: array ('User1','User2')

I have tried this :

if ($result->num_rows != 0) {
    $rows=array(); 
    while($r=mysqli_fetch_assoc($result))
    { 
        $rows[]=$r;
    } 
}

But it gives following result:

{
   array(1) {
       ["nomInteretUser"]=> "foot"
   }
   array(1) {
       ["nomInteretUser"]=> "cyclisme"
   }
}

Upvotes: 1

Views: 457

Answers (3)

dev87
dev87

Reputation: 164

use $rows[]=$r['nomInteretUser']; in your code than you get the right result. :)

if ($result->num_rows != 0) {
    $rows=array(); 
    while($r=mysqli_fetch_assoc($result))
    { 
        $rows[]=$r['nomInteretUser'];
    } 
}

Upvotes: 2

Parixit
Parixit

Reputation: 3855

You can do this 2 ways:

  1. Please update your current code like this

    while($r=mysqli_fetch_assoc($result))
    { 
        $rows[]=$r['nomInteretUser'];  //Update here
    }
    
  2. If you don't want to update your current code then modify code, then use array_column() (>= PHP 5.5 Required)

    $rows = array_column($rows, 'nomInteretUser');

Hope it helps!

Upvotes: 1

David Ansermot
David Ansermot

Reputation: 6112

Simply update your code to :

if($result)
{           
   if ($result->num_rows != 0) {

      $rows=array(); 

      while($r=mysqli_fetch_assoc($result))
      { 
         $rows[]=$r["nomInteretUser"];
      } 
   }
 }

Upvotes: 1

Related Questions