我正在看一个关于mysql和php的视频教程,有一行代码让我有点困惑:
<?php
$result = mysql_query("SELECT * FROM subjects", $connection);
if(!$result){
die("Database query failed: " .mysql_error());
}
while($row = mysql_fetch_array($result)){
echo $row["Menu_Name"]." ".$row["position"]."<br/>";
}
?>我想真正理解这段代码在做什么,所以让我看看我是否弄清楚了。基本上,它在我的屏幕上所做的是返回存储在我的表subjects中的各种项目,并将它们显示在它们的位置上。它通过在两个数组中返回它们来实现这一点,一个是menu-name,它存储每一项的文本,另一个是position,它存储它们出现的顺序。因此,我的while循环遍历这个数组并输出。但这就是我所不明白的。$row是做什么的,它是如何遍历和循环的。我可能离得太远了,希望有人能对此有所了解。
发布于 2013-03-22 13:58:34
mysql_query发送MySQL查询。mysql_query()向与关联的服务器上的当前活动数据库发送唯一查询(不支持多个查询)。如果用户没有访问查询所引用的表的权限,mysql_query()也将失败并返回FALSE。
mysql_fetch_array以关联数组和/或数字数组的形式获取结果行。返回与读取的行对应的字符串数组,如果没有更多的行,则返回FALSE。
最后一件事,如果你想知道一个函数是怎么回事,可以参考文档。它在大多数情况下都有帮助。
根据您提出的问题,我想您应该学习一下基本的MYSQL和PHP课程。
发布于 2013-03-22 13:57:43
这不是两个数组。这是一个多维的数组
while($row = mysql_fetch_array($result)){当您运行这行代码时,它会从结果列表中获取完整的一行,并将其分配给一个名为$row的数组。然后,您可以指定索引名称以从索引中获取数据,就像您编写的那样
$row["Menu_Name"]因此,Menu_Name是包含来自数据库的一些值的数组$row的索引。由于此语句存在于循环中,因此它将遍历返回结果的所有行,并对每一行执行相同的操作
发布于 2013-03-22 14:03:19
此行正在逐行检索表记录。这实际上是一个表示表记录的数组。
$row = mysql_fetch_array($result)现在,此数组通过表字段名进行索引。因为您的查询是'select *',这意味着它正在检索所有字段。
所以,
$row["Menu_Name"] 具有当前行的表'subjects‘的字段'Menu_Name’的值。
https://stackoverflow.com/questions/15563649
复制相似问题