0

我有一个快速的问题。我有下面的 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";
}
4

2 回答 2

2

您的代码是正确的,唯一的问题是 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 扩展,这更好,你会感激的。

于 2013-05-17T21:11:10.567 回答
0
$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";

尝试这个

于 2013-05-17T20:24:50.657 回答