我有一个快速的问题。我在下面的while语句中起作用,但是将表中的所有内容打印两次。我是PHP和MySQL的新手,不知道为什么。有人可以帮我指出正确的方向吗?
while($row = mysql_fetch_array($result))
{
echo "<tr>";
// $row is array... foreach( .. ) puts every element
// of $row to $cell variable
foreach($row as $cell)
echo "<td>$cell</td>";
$linkID= $row['linkID'];
echo '<td><a href="update.php?linkID=' . $linkID. '">Update Status</a></td>';
echo "</tr>\n";
}
最佳答案
您的代码是正确的,唯一的问题是mysql_fetch_array带有第二个参数,第二个参数有三个选项(MYSQL_BOTH,MYSQL_ASSOC,MYSQL_NUM)。
默认情况下,如果您不指定它,则将其设置为MYSQL_BOTH,它将为您提供两个数组,一个数组具有数字索引,另一个数组具有关联索引。这就是问题的根源
您只需添加以下参数即可解决此问题:
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
.....
如果需要,MYSQL_NUM也可以使用。
注意 :
自PHP 5.5.0起不推荐使用此扩展,以后将删除。相反,应使用MySQLi或PDO_MySQL扩展
因此,您必须使用pdo扩展名,这样做更好,您将不胜感激。