从sql查询结果格式化数组

时间:2016-05-18 11:13:11

标签: php mysql arrays

我有以下查询

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

我想生成一个具有以下结构的数组:array ('User1','User2')

我试过这个:

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

但它给出了以下结果:

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

4 个答案:

答案 0 :(得分:2)

在代码中使用$rows[]=$r['nomInteretUser'];而不是获得正确的结果。 :)

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

答案 1 :(得分:1)

只需将您的代码更新为:

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

      $rows=array(); 

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

答案 2 :(得分:1)

你可以这两种方式:

  1. 请更新您当前的代码

    while($r=mysqli_fetch_assoc($result))
    { 
        $rows[]=$r['nomInteretUser'];  //Update here
    }
    
  2. 如果您不想更新当前代码然后修改代码,请使用array_column()>= PHP 5.5必填)

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

  3. 希望它有所帮助!

答案 3 :(得分:-1)

请用

替换您的代码
if ($result->num_rows != 0) {
$rows=array();
$i = 0;
while($r=mysqli_fetch_assoc($result))
{ 
    $rows[$i]=$r;
    $i++;
} 
}