在我的PHP应用程序中,我需要采用多维数组并在for循环中提取值。查询将始终返回9行。
$w = mysqli_query($con,"SELECT age, percent FROM drive03_2_monthly_income WHERE birthYear='1956' AND (age LIKE '%.00%') ORDER BY birthYear,age ");
$row = mysqli_fetch_array($w);
for($n=0;$n<9;$n++) {
echo $row[$n]->age." -- ".$row[$n]->percent."<br />";
}
当我运行它时,我在$ w中获取了我想要的数据,但是在循环中提取值时出现问题。
答案 0 :(得分:0)
你在这里。
<?php
$w = mysqli_query($con,"SELECT age, percent FROM drive03_2_monthly_income WHERE birthYear='1956' AND (age LIKE '%.00%') ORDER BY birthYear,age ");
while ($row = mysqli_fetch_array($w, MYSQLI_ASSOC))
{
echo $row['age']->age." -- ".$row['percent']->percent."<br />";
}
?>
答案 1 :(得分:-1)
问题是mysqli_fetch_array()
获得了一行。您可以选择以下步骤。
选项1 - 在循环中使用mysqli_fetch_array()
:
while($row = mysqli_fetch_array($w)){
// Do something with your associative row data
echo $row['age'];
}
选项2 - 在循环中使用mysqli_fetch_object()
:
while($row = mysqli_fetch_object($w)){
// Do something with your object row data
echo $row->name;
}
选项3 - 使用mysqli_fetch_all()
foreach(mysqli_fetch_all($w, MYSQLI_ASSOC) as $row){
// Do something with your associative row data
echo $row['age'];
}
不建议这样做,如文档中所引用。
由于mysqli_fetch_all()将所有行作为数组返回到一个数组中 步骤,它可能比一些类似的功能消耗更多的内存,如 mysqli_fetch_array(),它一次只返回一行 结果集。此外,如果您需要迭代结果集,那么 将需要一个循环结构,这将进一步影响性能。 出于这些原因,mysqli_fetch_all()只应该在那些中使用 将获取的结果集发送到另一个层的情况 用于处理。