尝试在客户网站上工作,但我遇到了一些困难。当我在数据库中没有条目时,它在if(!row)捕获并显示消息。这部分运行得很好。我的问题是,当我在数据库中有条目时,它们不会显示。我知道while循环是有效的,因为我有几个页面运行类似的循环。实际上,这个循环是从另一个在公共页面上显示此条目信息的页面复制而来的。
我知道这个网站主要是用来提问的,但我想我只是需要一双新的眼睛来看看我的代码(我已经写了超过12个小时的代码,我有点累了)。下面的许多代码来自以前的网页设计师,如果由我决定,我会重写整个网站,因为代码“过时了”,但客户只是想让我改进它。任何帮助都将不胜感激。
$row = mysql_fetch_array($result);
if (!$row) {
echo '<tr><td bgcolor="ffffff" colspan="3"><font face="arial,helvetica" size="2" color="000000">There are no entries at this time, check back later.</font></td></tr>';
} else {
while ($row = mysql_fetch_array($result)) {
echo '<tr>
<td bgcolor="ffffff"><font face="arial,helvetica" size="2" color="000000">$date - $row["theme"]</font></td>
<td bgcolor="ffffff" align="center">
<form action="dsp_modifyposition.php">
<input type="hidden" name="specialID" value="$row["specialID"]">
<input type="hidden" name="theme" value="$row["theme"]">
<input type="submit" value=" Modify ">
</form>
</td>
<td bgcolor="ffffff" align="center">
<form action="act_deleteposition.php" onsubmit="return confirm(\'Are you sure you want to delete this event: $date \')">
<input type="hidden" name="specialID" value="$row["specialID"]">
<input type="hidden" name="theme" value="$row["theme"]">
<input type="submit" value=" Delete ">
</form>
</td>
</tr>';
}
}发布于 2012-06-07 08:16:52
当您第一次调用mysql_fetch_array时,mysql结果指针将移动到下一行。由于未对此行执行任何操作,因此不会显示第一行。您想要的是mysql_num_rows检查结果集中有多少行。作为附注,如果您不使用数字索引,我建议使用mysql_fetch_assoc。
if (!mysql_num_rows($result)) {
echo '...';
} else {
while ($row = mysql_fetch_assoc($result)) {
echo '...';
}
}发布于 2012-06-07 08:13:55
将您的第一行更改为:
$cnt = mysql_num_rows($result)
if (!$cnt) {
echo '<tr><td bgcolor="ffffff" colspan="3"><font face="arial,helvetica" size="2" color="000000">There are no entries at this time, check back later.</font></td></tr>';
} else {
....发布于 2012-06-07 08:12:45
您的if()语句似乎有缺陷。声明:
$row = mysql_fetch_array($result);将获取一行并将$result中的指针移动到下一行,因此while将从第二行开始。如果查询只返回一行,那么实际上就是调用mysql_fetch_array()两次并跳过返回的数据。
您应该找到其他方法来检查是否有结果(可能使用mysql_num_rows())。
https://stackoverflow.com/questions/10923983
复制相似问题