【问题标题】:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource警告:mysql_num_rows():提供的参数不是有效的 MySQL 结果资源
【发布时间】:2011-09-22 18:44:29
【问题描述】:

尝试实现 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>';

 }
}
?>

【问题讨论】:

标签: php mysql database pagination jquery-pagination


【解决方案1】:

您想传递 mysql_num_rows() 您的 $query 值而不是您的 $results 值。 (或者您想将代码重构为将 $query 命名为 $query_result 之类的其他名称并将其传递给 mysql_num_rows()。)

mysql_num_rows() 需要一个 MySQL 结果资源,在您的情况下,它由您分配给 $querymysql_query() 返回。

相比之下,

$result 只是一个表示单行结果的数组。 (因此,更好的重构可能是将$result 重命名为$row 并将$query 重命名为$result。然后您可以将电话留给mysql_num_rows()。)

【讨论】:

    【解决方案2】:

    mysql_num_rows() 需要一个结果资源(在您的情况下为 $query),而不是从 mysql_fetch_array() 中提取的行。

    if(mysql_num_rows($query )==9) {
      // etc...
    }
    

    【讨论】:

      猜你喜欢
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 2011-04-24
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      相关资源
      最近更新 更多