【发布时间】:2011-09-19 09:06:18
【问题描述】:
当我运行以下 php 代码时,即使在 practice_calendar_times 中有不止一行,while 循环也只会运行一次。
$sql = "
SELECT * FROM practice_calendar_times;
";
$result = mysql_query($sql, $con);
if($result){
while($practice = mysql_fetch_array($result)){
//... Prints data from the row + more ...
}
}
在网页上,我收到一条打印的警告消息:“警告:mysql_fetch_array():提供的参数不是 /rmounts/vol0-nas/yorkweb/webs/fencing/MyWebSite/homecontent.php 中的有效 MySQL 结果资源第 113 行"。
第 113 行是 while 循环。我查了一下,显然这通常是由 mysql 查询的语法错误引起的。然而,这里不是这种情况; mysql 正确地从数据库中提取第一行,while 循环运行一次。如果我将 while 替换为 if 它没有抱怨并打印出一行。我还尝试在 practice_calendar_times 中删除除一行之外的所有内容,但仍然收到警告消息。但是,当我删除所有行时,它不会打印警告。
关于如何让 while 循环遍历表并停止抱怨的任何想法?
【问题讨论】:
-
你能否在 mysql_query 行(分号前)中添加或删除(mysql_error ()),看看它是否返回错误。如果是,那是什么?
-
Meagar,是的,你是对的!循环非常大,我有一个我什至没有考虑过的内部查询,它正在重新分配 $result。请将您的建议作为答案发布,以便我接受。
-
如果您要给出向下箭头,请至少说明原因。