我正在关注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/>";
}
?>
我想真正理解这段代码的作用,所以让我看看我是否直截了当。基本上,它在我的屏幕上做的是返回我的表科目中的各种项目存储并显示它们的位置。它通过将它们返回两个数组来实现这一点,一个是[menu-name],它存储每个项目的文本,另一个是[position],它存储它们的出现顺序。所以,我的while循环遍历此数组并输出。但这就是我没有得到的。 $ row做了什么以及它如何设法通过并循环。我可能会离开这里,并希望有人可以对此有所了解。
答案 0 :(得分:2)
mysql_query
发送MySQL查询。 mysql_query()
向与指定关联的服务器上的当前活动数据库发送唯一查询(不支持多个查询)。如果用户没有访问查询引用的表的权限,mysql_query()
也将失败并返回FALSE
。
mysql_fetch_array
将结果行作为关联数组,数字数组或两者进行提取。返回与获取的行对应的字符串数组,如果没有更多行,则返回FALSE
。
如果您想知道函数发生了什么,请尝试参考文档。它在大多数时候都有帮助。
根据您提出的问题,我猜您应该参加基本的MYSQL和PHP课程。
答案 1 :(得分:0)
那些不是两个数组。那是一个多维的数组
while($row = mysql_fetch_array($result)){
当您运行该行代码时,它会从结果列表中抓取一个完整的行,并将其分配给名为$row
的数组。然后,您可以提供索引名称,以便像写入
$row["Menu_Name"]
因此Menu_Name
是数组$row
的索引,其中包含来自数据库的某些值。由于此语句存在于循环中,因此它将遍历返回结果的所有行,并为每个行执行相同的操作
答案 2 :(得分:0)
这一行是逐行检索表记录的。这实际上是一个表示表记录的数组。
$row = mysql_fetch_array($result)
现在,这个数组由表字段名称索引。因为您的查询是'select *',这意味着它检索所有字段。
所以,
$row["Menu_Name"]
具有当前行的表'subject'的字段'Menu_Name'的值。
答案 3 :(得分:0)