$str="SELECT * FROM talbe having ( 姓名 like '%奥巴马%'||职业 like  '%政治家%') limit ".($page-1)*$num.",".$num;ceil($count/$num)//  这样求出总共显示多页,这里的$num是每一页要显示的记录数。
$count应该是按关键字搜索后得出来的是一张表的部分记录数而不是整个表的记录数,
请问:在这种查询方法中怎么获取:$count ?

解决方案 »

  1.   

    我看还需再运行一句 
    SELECT count(*) as num FROM talbe having ( 姓名 like '%奥巴马%'||职业 like  '%政治家%')
    然后 $r[a] 获取
      

  2.   

    在mysql官网上找了下
    有种优化方案
    SELECT SQL_CALC_FOUND_ROWS * FROM talbe having ( 姓名 like '%奥巴马%'||职业 like  '%政治家%') limit ".($page-1)*$num.",".$num;
    SELECT FOUND_ROWS();
    运行成功 
    参看 http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows
      

  3.   


    //试验了半天,两种方法都没能成功:
    $sqlg="SELECT count(*) as tot FROM lis having (xue like '%6%'||gongzi like  '%2%')";
    //$sqlg="select count(*) as tot from lis";//如果上面一句换成这句,下面可以运行输出$lgg;
    $resn=$conn->query($sqlg);
    $restt=$resn->fetch_array();
    $lgg=$restt['tot'];
    echo $lgg;继续求解答?????谢谢
      

  4.   

    你第一句是分页的sql指令。。你只要取出按关键字搜索后的总记录数不就行了。
    $str="SELECT * FROM talbe having ( 姓名 like '%奥巴马%'||职业 like  '%政治家%')";
    $resn=$conn->query($str);
    $count=$conn->num_rows($resn);   //$count不就是总条数吗?
      

  5.   


    $str="SELECT SQL_CALC_FOUND_ROWS * FROM talbe having ( 姓名 like '%奥巴马%'||职业 like  '%政治家%') limit ".($page-1)*$num.",".$num;
    $result = mysql_query( $str );
    // do....$countSQL = "SELECT FOUND_ROWS()";
    $countResult = mysql_query( $countSQL );
    $count = mysql_result( $countResult, 0);
    // do ceil($count/$num)
      

  6.   

    4楼的这样报错:Fatal error: Call to undefined method mysqli::num_rows() in D:\AppServ\www\lis.php on line 2165楼的还是不行,试问中间的// do....省略了什么?
      

  7.   

    // do.... 这是你输出结果的操作
    后面的查询结果就是显示总有符合的记录数 $count是多少