PHP foreach行为$ var,行名和行号重复

时间:2013-11-16 01:58:00

标签: php mysql

我编写了一个简单的函数来循环并显示sql表中的所有变量。 但是foreach $ row显示两次行,1次作为行名称,1次作为行号。

1:$ row ['NAME']姓名表

2:$ row [0]'数字表

PHP:

<?php

include "condetails.php";
$query = "select * from pagedetails";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
  foreach($row as $var => $val) {
    echo "VARNAAM :".$var;
    echo "<br />";
    echo "VALUE".$val;
    echo "<br />";
    echo "<br />";
  }
}

?>

输出:

VARNAAM:0 VALUE1

VARNAAM:id VALUE1

VARNAAM:1 VALUEdddd

VARNAAM:h1txt VALUEdddd

3 个答案:

答案 0 :(得分:1)

它显示两次,因为mysql_fetch_array()获取列名称及其编号。

如果你只想要列名称尝试使用mysql_fetch_assoc(),请记住mysql_ *函数是折旧的,你应该使用PDO / MySQLi:)

答案 1 :(得分:0)

mysql_fetch_array返回一个混合数组,其中键作为数字和列名。您可能需要mysql_fetch_assoc(),它只返回名称密钥。

答案 2 :(得分:0)

来自the manual

  

mysqli_fetch_array()是mysqli_fetch_row()函数的扩展版本。 除了将数据存储在结果数组的数字索引中之外,mysqli_fetch_array()函数还可以使用结果集的字段名作为键将数据存储在关联索引中。

你真正想要的是mysqli_fetch_assoc()

  

返回与获取的行对应的关联数组,如果没有其他行,则返回NULL。