试图实现Facebook风格的分页,我一直收到这个错误? Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
,
我不完全确定这是什么意思,但我无法通过谷歌搜索找到解决方案,任何愚蠢的错误都能脱颖而出?这是代码:
<?php
include('functions.php');
if(isset($_POST['lastmsg']) &&is_numeric($_POST['lastmsg']))
{
$lastmsg=$_POST['lastmsg'];
$query = mysql_query("SELECT * FROM links WHERE id>'$lastmsg' ORDER BY id ASC LIMIT 9 ");
while($result = mysql_fetch_array($query))
{
$msg_id=$result['id'];
$message=$result['link'];
?>
<li> <?php echo $message; ?> </li>
<?php
}
?>
<?php
if(mysql_num_rows($result)==9){
?>
<div class="facebook_style" id="facebook_style">
<a id="<?php echo $message; ?>" href="#" class="load_more" >
Show Older Posts <img src="arrow1.png" /></a> </div>
<?php
}else {
echo ' <div id="facebook_style">
<a id="end" href="#" class="load_more" >No More Posts</a>
</div>';
}
}
?>
答案 0 :(得分:4)
您希望mysql_num_rows()
传递$query
值,而不是$results
值。 (或者您希望重构代码,将$query
命名为$query_result
之类的其他内容,并将其传递给mysql_num_rows()
。)
mysql_num_rows()
需要MySQL结果资源,在您的情况下由mysql_query()
返回,您已将其分配给$query
。
$result
只是一个表示结果的单行的数组。 (因此,更好的重构可能是将$result
重命名为$row
并将$query
重命名为$result
。然后您可以按原样拨打mysql_num_rows()
。)
答案 1 :(得分:0)
mysql_num_rows()
需要一个结果资源(在您的情况下为$query
),而不是从mysql_fetch_array()
拉出的行。
if(mysql_num_rows($query )==9) {
// etc...
}