【问题标题】:Mysqli_error() and logic issues in paginationMysqli_error() 和分页中的逻辑问题
【发布时间】:2016-03-22 00:01:03
【问题描述】:

问题

第一次使用分页,所以我仍在尝试了解这一切是如何结合在一起的。我相当有信心我在这里研究和应用的方法会起作用,但是我遇到了一个奇怪的错误。

由于第二个 mysqli_query 失败导致错误消息Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given,因此无法访问数据。

数据库中只有一个条目,我只能假设这一定会导致一些奇怪的逻辑,但我什至不是 100% 认为发生这种情况是有意义的。它也绝对是第二个mysqli_query,因为Could not get that data 是输出。

非常感谢对分页过程的一些解释,如果有人能发现我的错误,将不胜感激。

代码

<?php 

        $connect = mysqli_connect("localhost", "root", "");
        if (!$connect) {die(mysql_error());}mysqli_select_db($connect, "story.time");

         $rec_limit = 5;
         $sql = "SELECT count(id) FROM toptable ";
         $retval = mysqli_query($connect, $sql);

         if(! $retval ){die('Could not get this data: ' . mysql_error());}
         $row = mysqli_fetch_array($retval, MYSQL_NUM );
         $rec_count = $row[0];

         if( isset($_GET{'page'} ) ){$page = $_GET{'page'} + 1;$offset = $rec_limit * $page;}
         else{$page = 0;$offset = 0;}
         $left_rec = $rec_count - ($page * $rec_limit);
         $sql = "SELECT id, name, content FROM toptable ORDER BY id DESC LIMIT $offset, $rec_limit";

         $retval = mysqli_query($connect, $sql);
         if(! $retval ){die('Could not get that data: ' . mysqli_error($retval));}

         while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
         {echo "{$row['id']}  <br> "."{$row['name']} <br> "."{$row['content']} <br> ";}

         if( $page > 0 ){$last = $page - 2;
            echo "<a href=\"$_PHP_SELF?page=$last\">Last 10 Records</a> |";
            echo "<a href=\"$_PHP_SELF?page=$page\">Next 10 Records</a>";}

         else if( $page == 0 )
         {echo "<a href=\"$_PHP_SELF?page=$page\">Next 10 Records</a>";}

         else if( $left_rec < $rec_limit )
         {$last = $page - 2;echo "<a href=\"$_PHP_SELF?page=$last\">Last 10 Records</a>";}

         mysqli_close($connect);

?>

【问题讨论】:

  • 我喜欢你的意志力,但为什么不使用默认已经包含所有这些元素的类或脚本呢?您需要以前从未发明过的轮子吗?
  • @davejal 这更像是一种学习练习,但如果有帮助,我很乐意采用不同的方法。你有什么推荐的吗?
  • 如果是练习,请继续(最好的学习方式)。有很多我真的不能推荐,但我已经使用framework 有一段时间了。这也教你编写 OOP 程序,而不是程序。
  • 当您使用它时,请查看this 以调试您的 php 代码。
  • @davejal 这就是我来这里的原因,否则我将永远被困在自己身上。这看起来真的很不错,我会再调查一下,谢谢。

标签: php mysqli pagination


【解决方案1】:
if (!$connect) {die(mysql_error());}mysqli_select_db($connect, "story.time");

mysql_error()

你在别处使用 mysqli。试着坚持一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    相关资源
    最近更新 更多