mysql_fetch_array获取日期两次获取每个元素

时间:2013-07-29 09:50:07

标签: php mysql

我希望迭代从datebase中获取的元素 但结果看起来非常意外  我发现下面的代码打印了$valueecho "<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>";
                }       
        .....
    }

3 个答案:

答案 0 :(得分:3)

请使用mysql_fetch_assoc() mysql_fetch_array()的地方 我希望它会有所帮助

答案 1 :(得分:3)

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

一个索引用表示列索引的整数索引,一个索引用列名索引。

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

答案 2 :(得分:1)

除了@ Andreas的默认答案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