代码应该在每个循环中获取一行并为每个数据块构建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>";
}
}
答案 0 :(得分:0)
mysql_fetch_assoc返回一个关联数组。要显示每个返回的行,请执行以下操作(直接从php.net页面获取mysql_fetch_assoc
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}
答案 1 :(得分:0)
尝试删除大括号,如下所示:
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>";
}