1

我正在关注关于 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 做了什么以及它如何设法通过和循环。我可能离这里很远,希望有人能对此有所了解。

4

4 回答 4

2

mysql_query发送 MySQL 查询。mysql_query()向与指定关联的服务器上的当前活动数据库发送唯一查询(不支持多个查询)。如果用户无权访问查询引用的表,mysql_query()也会失败并返回。FALSE

mysql_fetch_array以关联数组、数值数组或两者的形式获取结果行。返回与获取的行相对应的字符串数组,或者FALSE如果没有更多行。

最后一件事,如果您想知道函数发生了什么,请尝试参考文档。它在大多数情况下都有帮助。

根据您提出的问题,我想您应该学习基本的 MYSQL 和 PHP 课程。

于 2013-03-22T05:58:33.673 回答
0

这些不是两个数组。那是一个多维数组

while($row = mysql_fetch_array($result)){

当您运行该行代码时,它会从结果列表中抓取一整行并将其分配给名为$row. 然后,您可以像您写的那样给您的索引名称以从中获取数据

$row["Menu_Name"]

包含来自数据库的某些值Menu_Name的数组索引也是如此。$row由于此语句存在于循环中,因此它将遍历返回结果的所有行并对每一行执行相同的操作

于 2013-03-22T05:57:43.107 回答
0

这一行正在逐行检索表记录。这实际上是一个表示表记录的数组。

    $row = mysql_fetch_array($result)

现在,这个数组由表字段名称索引。因为您的查询是“选择 *”,这意味着它正在检索所有字段。

所以,

$row["Menu_Name"] 

具有当前行的表“subjects”的字段“Menu_Name”的值。

于 2013-03-22T06:03:19.203 回答
0

查看教程示例http://www.devmanuals.com/tutorials/php/phpmysql/php-mysql-fetch-array-example.html 。它可能会清除您的疑问

于 2013-03-22T06:13:00.150 回答