【发布时间】:2018-05-23 13:04:46
【问题描述】:
当我使用 while 循环使用 mysqli_fetch_array() 打印特定列的值时,我从数据库中得到了正确的输出。
while($row=mysqli_fetch_array($data))
{
echo $row['name'];
}
但是当我使用下面提到的没有循环的代码时,输出是不同的。
$row=mysqli_fetch_array($data);
echo $row['name'];
echo $row['name'];
echo $row['name'];
echo $row['name'];
echo $row['name'];
echo $row['name'];
当我使用下面提到的代码时,我可以看到我使用 mysqli_fetch_array() 以关联数组的形式获取所有行。
$con=mysqli_connect("localhost", "root", "", "student_details");
$data=mysqli_query($con,"select * from `registration`");
while ($row = mysqli_fetch_array($data))
{
$rec[]=$row;
}
echo "<pre>";
print_r($rec);
echo "</pre>";
?>
我的问题是如何获取特定列的所有值(使用 while 循环),而不使用任何循环。
【问题讨论】:
-
每次调用
mysqli_fetch_array都会返回结果集中的 next 行。如果您只调用一次,您将只能从数据库中检索第一行。如果您不想使用循环来获取结果,则可以改用mysqli_fetch_all,尽管显然您仍然需要循环遍历结果集才能对其进行任何处理。 -
@iainn 这是我的问题,我们如何在没有循环的情况下获得输出?
-
好吧,您可以致电
echo $results[0]['name']、echo $results[1]['name']等。但这正是循环旨在避免的。如果您使用fetch_all,那么您可以使用array_column将所有名称放在一个数组中,但除非您知道集合中有多少行,否则您总是必须在某个时候使用循环来处理它们.我不太确定您要解决什么问题以及为什么。 -
那么,您应该了解循环是如何工作的。在每次运行之前(或之后,取决于循环)检查条件,这意味着
mysql_fetch_array在每次运行之前运行 -
mysql_fetch_array处于这种状态,每次循环运行前都会调用它。那么你如何想象检查条件呢?
标签: php