2013-03-22 81 views
1

林有我有点糊涂:Mysql与PHP - 从数据库返回值?下面就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

1日学习基本的PHP和MySQL的。 – KarSho 2013-03-22 05:56:39

+0

$ row是存储数据库中单个行的值的数组。您可以使用字符串索引器(列的名称)访问此行中的值,以获取数组$ row中的值。 – 2013-03-22 05:58:51

+0

由于您是新手,请接受解决问题的答案(打勾)。向上(向上箭头)提供您的信息或帮助您的答案。向下投票(向下箭头)假的答案。 – Techie 2013-03-22 06:22:20

回答

0

这些都不是两个数组。这是一个数组,它是多维度

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

当你运行该代码行,然后将它从结果列表中抓住一个完整的行,并将其分配给名为$row数组。然后,你可以给你的索引名从它那里得到的数据只是喜欢你写的

$row["Menu_Name"] 

所以Menu_Name是含有来自数据库的一些数值数组$row的索引。因为这种说法是存在于循环中,它会遍历你的返回结果的所有行,做了他们每个人的

2

mysql_query发送MySQL查询相同。 mysql_query()发送一个唯一的查询(多个查询不支持),以当前活动的数据库与指定相关的服务器上。 mysql_query()也将失败,并返回FALSE如果用户没有权限访问查询所引用的表(一个或多个)。

mysql_fetch_array读取结果一行作为关联阵列,数字数组,或两者。返回与提取的行对应的字符串数组,如果没有更多行,则返回FALSE。如果你想知道什么是有功能的尝试提到的文档发生

最后一两件事。它在大部分时间都有帮助。

根据你问的问题我猜你应该通过基本的MYSQL和PHP课程。

0

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

$row = mysql_fetch_array($result) 

,该阵列由表的字段名索引。因为你的查询是'select *',这意味着它检索所有的字段。

所以,

$row["Menu_Name"] 

有字段的表“主体”的“菜单名”的价值,为当前行。