2015-06-03 35 views
1

代码应该在每个循环中获得一行,并为每个数据段构建td元素。然而,仅在缺少别人,即使选择了所有行得到了一些行:无法迭代选定的行

$query = "select * from category"; 
$ret = mysql_query($query, $conn); 
while ($rows = mysql_fetch_assoc($ret)) { 
    echo "<tr>"; 
    foreach ($rows as $val) { 
    echo "<td>{$val}</td>"; 
    } 
} 
+2

Wheres the rest of the code/table? – Zoxac

+0

你做错了:你正在使用[不推荐使用的mysql扩展](http://php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated)! – CodeZombie

+0

请详细说明问题,比如你得到的输出是什么,代码的其余部分在哪里 –

回答

0

mysql_fetch_assoc返回一个关联数组。要显示每个返回行,做这样的事情(为mysql_fetch_assoc

while ($row = mysql_fetch_assoc($result)) { 
echo $row["userid"]; 
echo $row["fullname"]; 
echo $row["userstatus"]; 

}

0

尝试删除大括号像这样直接从php.net页采取:

echo "<td>$val</td>"; 

在你身边没有关闭<tr>标签,所以你应该这样做:

$query = "select * from category"; 
$ret = mysql_query($query, $conn); 
while ($rows = mysql_fetch_assoc($ret)) { 
    echo "<tr>"; 
    foreach ($rows as $val) { 
    echo "<td>$val</td>"; 
    } 
    echo"</tr>"; 
} 

现在就像杰克奥尔布赖特说过的,你应该考虑表格的各个栏目来显示特定的数据。在那个while()已经是一个样子,我认为你不需要在里面添加任何foreach()。所以你最终的代码应该是这样的:

$query = "select * from category"; 
$ret = mysql_query($query, $conn); 
while ($rows = mysql_fetch_assoc($ret)) { 
    echo "<tr>"; 
    echo "<td>$rows['columnName']</td>"; 
    echo "</tr>"; 
}