2017-03-09 14 views
0

私は16レコードで構成された検索レコードをページ付けしますので、各ページに4レコードずつ4ページずつページを作成する必要があります。私のコードでは、送信ボタンをクリックすると、最初に4レコードが表示され、次のボタンを何も表示しないと、エラーを修正するのを助けてくれますか?ありがとうございます。 book_search.phpSQLと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> 

SCRI pt.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(); 
     }); 
}); 
+0

あなたはページネーションとdatadisplayを考えている場合は、なぜhttps://datatables.net/を使用しないでその使いやすく、改ページとサーバー側の例を参照してください。 –

+0

Sir私の問題は結果が表示されません。次にクリックすると、コードが間違っています。 –

答えて

0

クエリはエコーされていますが、正しく使用されていません。 2番目のクエリにはオフセットと制限が含まれていません。

$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); 
+0

2番目のクエリが2番目のクエリで合計レコードを計算するために使用されていません検索結果 –

関連する問題