我有一个快速的问题。我在下面的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扩展名,这样做更好,您将不胜感激。

08-28 00:15
查看更多