用PHP显示MySQL表

用PHP显示MySQL表,php,mysql,while-loop,html-table,Php,Mysql,While Loop,Html Table,我有一个简短的问题。我有下面的while语句,它正在工作,但正在将表中的所有内容打印两次。我是PHP和MySQL新手,不知道为什么。有人能帮我指出正确的方向吗 while($row = mysql_fetch_array($result)) { echo "<tr>"; // $row is array... foreach( .. ) puts every element // of $row to $cell variable foreach(

我有一个简短的问题。我有下面的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";
}
while($row=mysql\u fetch\u array($result))
{
回声“;
//$row是数组…foreach(..)放置每个元素
//将$row设置为$cell变量
foreach($行作为$单元格)
回声“$cell”;
$linkID=$row['linkID'];
回声';
回音“\n”;
}
$row=mysql\u fetch\u数组($result);
回声“;
//$row是数组。。。foreach(..)将每个元素
//将$row设置为$cell变量
foreach($行作为$单元格)
回声“$cell”;
$linkID=$row['linkID'];
回声';
回音“\n”;

试试这个

你的代码是正确的,唯一的问题是mysql\u fetch\u数组接受第二个参数,第二个参数有三个选项(mysql\u两者、mysql\u ASSOC、mysql\u NUM)

默认情况下,如果您不指定它,它将设置为MYSQL_,后者将为您提供两个数组,一个带有数字索引,另一个带有关联索引。这就是你问题的根源

您只需将此参数添加为:

while($row = mysql_fetch_array($result, MYSQL_ASSOC)){ 
.....
MYSQL_NUM也可以正常工作

注:

从PHP5.5.0开始,此扩展已被弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展


由于这个原因,您必须使用pdo扩展,这更好,您会很感激的。

您在一段时间内使用了foreach,而不再支持
mysql.*
函数,它们已经不再维护,将来也将继续使用。您应该使用或更新代码,以确保将来项目的功能。除非已知数据是html安全的,否则您应该使用逃逸
$cell
。感谢您的快速回复!有了这个,我仍然得到了完全相同的东西(除了更新状态链接之外,所有东西都加倍了)。
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){ 
.....