1

我希望迭代从数据库中获取的元素
但是结果看起来非常出乎意料。
我发现下面的代码打印了$valueandecho "<td id=".$key.$tag.">".$value."</td>";两次。有什么我误解了吗?

   function selectTable($table){
        $sql= "SELECT * FROM ".$table ;
         $result=mysql_query($sql)
                          or die(mysql_error());
        return $result;
  }

  $table = 'battery_con';
  $result = selectTable($table);
  unset($table);

 while($row = mysql_fetch_array($result)){
        ......
        foreach ($row as $key => $value) {
                  print $value; 
                  echo "<td id=".$key.$tag.">".$value."</td>";
                }       
        .....
    }
4

3 回答 3

3

请使用mysql_fetch_assoc()place ofmysql_fetch_array() 我希望它会有所帮助

于 2013-07-29T10:13:30.477 回答
3

您正在使用mysql_fetch_array,默认情况下它返回一个每列有两个元素的数组(这是第二个(可选)参数的含义:)result_type = MYSQL_BOTH

一种用表示列索引的整数进行索引,一种用列名进行索引。

这就是为什么您的列表中有两个条目。您可以将第二个参数设置为MYSQL_ASSOC每列仅获取一个值。

于 2013-07-29T10:20:16.927 回答
1

除了@Andreas's answer默认mysql_fetch_array提供关联索引和数字索引之外,如果您不希望这样做,您可以使用 while 循环中的第二个参数来限制它:

$row = mysql_fetch_array($result, MYSQL_NUM); // numeric keys only
$row = mysql_fetch_array($result, MYSQL_ASSOC); // associative keys only

正如@sonusindhu 之前提到的,您还可以使用mysql_fetch_row仅获取数字键或mysql_fetch_assoc仅获取关联键。

更新

不推荐使用 mysql_xxx() 函数,您应该考虑改用 mysqli_xxx() 函数。

有关详细信息,请参阅 php 手册的示例 1:http: //php.net/manual/en/mysqli-result.fetch-array.php

于 2013-07-29T10:27:59.927 回答