php - SQL 和 PHP 中的分页不起作用

标签 php jquery html mysql

我要对总共 16 条记录组成的搜索记录进行分页,因此我需要分页为 4 页,每页每页包含 4 条记录,这里我编写了代码,但是当我单击提交按钮时在我的代码中将显示前 4 条记录,当我单击“下一步”按钮后,没有任何显示,您能帮我纠正错误吗,拜托,先谢谢您... book_search.php

<?php
include('assets/page_header.php');    
?>
<!--script type="text/javascript" src="js/page.js">
</script>-->

<div class="container">    
<h1>SEARCHING THE BOOK</h1>

<form  id="search"  name="search" action="#" method="post">
Search : <input type="text" name="author" id="author">

<input id="submit" name="submit"  type="submit" value="Submit"> 

<div id="display">   
</div>   

</form>
</div>
</body>

</html> 

ajax1.php

 <?php
    include('db.php');
    $page="";
    if(isset($_POST['page']))
    {

    $page=$_POST['page'];
    echo $page;
    }
    else
    {
    $page=1;
    }
    ?>
    <input type="hidden" name="page" id="page" value="<?php if(isset($page)) echo $page;?>">
    <?php
    $num_rec_per_page = 5;
    ?>
    <div id="navigation">

    <?php
    if(isset($_POST['author']))
    {       
        $author=mysql_real_escape_string($_POST['author']);

        if($author=="")
        {
            echo "Please Enter Title or Author or Publisher";
        }
        else
        {       
            if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; }; 
            $start_from = ($page-1) * $num_rec_per_page; 

            $query1="select * from books  where  title LIKE '%$author%' OR author LIKE '%$author%' OR publisher LIKE '%$author%'  LIMIT $start_from, $num_rec_per_page  ";
            echo $query1;
            $rs_result=mysql_query("select * from books  where  title LIKE '%$author%' OR author LIKE '%$author%' OR publisher LIKE '%$author%'");       

            $total_records = mysql_num_rows($rs_result);  
            echo $total_records;//count number of records
            $total_pages = ceil($total_records / $num_rec_per_page); 

            if($page>1)
            {
            $pagenumber=$page-1;
            $prev="<a href=\"book_search.php?page=$pagenumber\">[Back]</a>";
            $first="<a href=\"book_search.php?page=1\">[FirstPage]</a>";
            }
            else
            {
            $prev='';
            $first='';
            }
            if($page<$total_pages)
            {
            $pagenumber=$page+1;
            $next="<a id='pagin' href=\"book_search.php?page=$pagenumber\" >[Next]</a>";
            $last="<a id='pagin' href=\"book_search.php?page=$total_pages\">[LastPage]</a>";
            }
            else
            {

            $next="";
            $last="";

            }

            echo $first.$prev."Showing page<bold>$page</bold>of<bold>$total_pages</bold>pages".$next.$last;        

            $result1=mysql_query($query1) or  die(mysql_error());        
            $count=mysql_num_rows($result1);

            $display= "<table align='center'>";
            $display.= "<tr><td>title</td>   <td>author</td>   <td>publisher</td>   <td>numcopies</td>    <td>status</td>    <td>number_of_copies_available</td> <td>Action</td> </tr>";
            while($row=mysql_fetch_array($result1)){
                $count=mysql_num_rows($result1);

                $r12=$row['bookid'];
                $query2=mysql_query("select bookid from bookrentalinfo where bookid=$r12");
                $num_copies_borrowed=mysql_num_rows($query2);   
                $num_copies_count=$row['numcopies'];
                $number_of_copies_available=$num_copies_count-$num_copies_borrowed;
                $display.= "<tr>";
                $display.="<td>".$row['title']."</td>";
                $display.= "<td>".$row['author']."</td>";
                $display.= "<td>".$row['publisher']."</td>";
                $display.= "<td>".$row['numcopies']."</td>";        
                $display.= "<td>".$row['status']."</td>";   
                $display.= "<td>".$number_of_copies_available."</td>";
                if($number_of_copies_available>0)
                {
                    $display.= "<td><a href='borrow_search.php?book_id=".$row['bookid']."'>Rent</a></td>";      
                }
                else {
                    $display.= "rent link is not activated";
                    $display.="<td></td>";      
                }

                $display.= "</tr>";
            }
            $display.="</table>";
            echo $display;

        }
    }
    ?>
    </div>

        <script type="text/javascript">
        $(document).ready(function(){
        $("#pagin").click(function(e) {

        alert("clicked");
        var author=$("#author").val();
        var page=$("#page").val();
        $.ajax({
                type: "POST",
                url: "db/ajax1.php",
                data: {'author':author,'page':page},
                cache: false,
                success: function(result){

                //alert("submitted"+result);

                $('#display').html(result);       
                },
                error: function (xhr, ajaxOptions, thrownError) {
                        alert(xhr.status);
                        alert(thrownError);
                }
                });
            });
            e.preventDefault(); 
            });
    </script>

脚本.js

$(document).ready(function(){  
    $("#submit").click(function(e){     

    var author = $("#author").val();
    var dataString='author='+author;
          if(author=='')
        {
        alert("Please Enter Author or Title or Publisher Fields");
        }
        else
        {
            // AJAX Code To Submit Form.
            $.ajax({
            type: "POST",
            url: "db/ajax1.php",
            data: dataString,
            cache: false,
            success: function(result){

            //alert("submitted"+result);

            $('#display').html(result);         
            },
            error: function (xhr, ajaxOptions, thrownError) {
                    alert(xhr.status);
                    alert(thrownError);
            }
            });
        }
        e.preventDefault(); 
        });
});

最佳答案

您的查询已被回显,但未正确使用。第二个查询不包含 offset 和 limit。

$query1="select * from books  where  title LIKE '%$author%' OR author LIKE '%$author%' OR publisher LIKE '%$author%'  LIMIT $start_from, $num_rec_per_page  ";
        echo $query1;
        $rs_result=mysql_query("select * from books  where  title LIKE '%$author%' OR author LIKE '%$author%' OR publisher LIKE '%$author%'"); 

尝试:

$query1="select * from books  where  title LIKE '%$author%' OR author LIKE '%$author%' OR publisher LIKE '%$author%'  LIMIT $start_from, $num_rec_per_page  ";
        echo $query1;
        $rs_result=mysql_query($query1); 

关于php - SQL 和 PHP 中的分页不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42688633/

相关文章:

php - Web 应用程序上的小部件

php - 如何在 Yii2 中编写全局函数并在任何 View 中访问它们(不是自定义方式)

javascript -/user/后显示用户名的用户信息

jquery - 刷新时随机背景图像

javascript - JQuery:fadeToggle() 以错误的方式工作

javascript - Angular .js : How to use ng-href in template?

javascript - 图像点击计数器事件监听器问题

php - 根据用户角色向 WooCommerce 订单号添加前缀

javascript - 让 SVG 饼图仅动画一次

javascript - 如何将 div 堆叠在一起以创建轮播