0

Mysql 查询有问题。我写了这段代码

enter code here
$result = mysql_query("SELECT * FROM description");
        while ($row = mysql_fetch_array($result)){
              $data[] = $row;
                   foreach ($data as $row){
                       echo $row['name'];
           }
     }



enter code here

我的输出是:

First description
First description
Second description
First description
Second description
Third description

我在 db 中有 3 个描述(第一、第二、第三),我不知道他为什么给我这样的东西。

有谁知道出了什么问题?

4

3 回答 3

5

您需要将其移至while循环之后:

       foreach ($data as $row) {
           echo $row['name'];
       }

首先,您将所有行都放入$data变量中,然后才开始将它们回显。

于 2012-12-18T15:10:43.297 回答
2

mysql_fetch_array()返回一个对偶数组:整数和字符串键控。如果你做了:

    while ($row = mysql_fetch_array($result)){
       var_dump($row);
    }

你会看到两个键。尝试使用mysql_fetch_assoc(),它只返回字符串键控版本。

于 2012-12-18T15:10:57.163 回答
1

您的 foreach 循环在您的 while 循环内。把它移到外面试试。

   $result = mysql_query("SELECT * FROM description");
    while ($row = mysql_fetch_array($result)){
          $data[] = $row;
   }
   foreach ($data as $row){
       echo $row['name'];
   }
于 2012-12-18T15:11:29.737 回答