如何迭代mysqli_fetch_array的结果()?(How do iterate the re

2019-10-17 03:35发布

在下面的代码,其结果包含多个产品和各自具有若干柱:

$db = connect_db();
$sql = "SELECT * FROM Products";
$result = $db->query($sql);
$ary = $result->fetch_array(MYSQLI_ASSOC);
foreach($ary as $key => $element){
  echo "key is $key, element is $element \n";
}

但只输出迭代单一产品的每一列:

key is id, element is 1
key is productCode, element is S10_1678
key is productName, element is 1969 Harley Davidson Ultimate Chopper
key is productLineId, element is 5
key is productScale, element is 1:10
key is productVendor, element is Min Lin Diecast
key is productDescription, element is This replica features working kickstand, front suspension, gear-shift lever, footbrake lever, drive chain, wheels and steering. All parts are particularly delicate due to their precise scale and require special care and attention.
key is quantityInStock, element is 7933
key is buyPrice, element is 48.81
key is MSRP, element is 95.7

我怎么可以得到2维数组$array[0]['MSRP']评估95.7

Answer 1:

我相信这将工作:

while ($ary = $result->fetch_array(MYSQL_ASSOC){
  foreach($ary as $key => $element){
    echo "key is $key, element is $element \n";
  }
}

这意味着,当有更多的记录,它会继续前进,把它们放在数组中,并打印出来......这是基于旧的mysql_fetch_assoc()和mysql_fetch_array()。

祝好运。

如果你想达到你想要什么,你只需要做到以下几点:

 while ($ary = $result->fetch_array(MYSQL_ASSOC){
      foreach($ary){
        $array[] = $ary;
      }
    }

现在$array具有整个结果集,因此$array[0]['MSRP'] -将返回你希望的值。



Answer 2:

$ary = $result->fetch_array(MYSQLI_ASSOC)一次仅这是第一个记录在您的案件得到一条记录,您将需要使用while

while($ary = $result->fetch_array(MYSQLI_ASSOC)) //fetching one record at a time until end of record
{

    foreach($ary as $key => $element){
      echo "key is $key, element is $element \n";
    }

}


Answer 3:

您需要遍历mysql_fetch命令,而不是命令的结果。

例如,例如:

$db = connect_db();
$sql = "SELECT * FROM Products";
$result = $db->query($sql);

while($entry = mysql_fetch_assoc($result))
{
  // $entry is an array you with the data of this DB-entry, eg
  echo $entry['MSRP'];
}


文章来源: How do iterate the result of mysqli_fetch_array()?
标签: php mysqli