使用php和mysql搜索筛选器分页问题

使用php和mysql搜索筛选器分页问题,php,html,mysql,Php,Html,Mysql,在这里,当我在搜索筛选器中搜索关键字以根据使用分页的搜索筛选器缩短数据库中的行时,它的显示正确,但当我单击第二页时,它将离开搜索筛选器并捕获第二个查询,并且仅用于分页 这是我的分页代码 <ul class="pagination"> <?php for($i=1;$i<=$total_page;$i++) echo"<li class='".($

在这里,当我在搜索筛选器中搜索关键字以根据使用分页的搜索筛选器缩短数据库中的行时,它的显示正确,但当我单击第二页时,它将离开搜索筛选器并捕获第二个查询,并且仅用于分页

这是我的分页代码

 <ul class="pagination">
                  <?php
                    for($i=1;$i<=$total_page;$i++)
                      echo"<li class='".($page_id == $i? 'active' : '')."'><a href='index.php?page=".$i."'>$i</a></li>";
                  ?>

              </ul>

    您的代码有几个问题:

    首先,当您选择要显示表的数据时,您没有考虑搜索参数,因此永远不会显示通过搜索筛选的记录

    此外,为了获得所有记录的计数,您不需要执行“选择*从..”操作,执行“选择计数(id)作为..的计数”操作效率更高


    如果要将搜索参数存储在$_会话中,请确保在PHP脚本顶部有SESSION_start()

    您的代码有几个问题:

    首先,当您选择要显示表的数据时,您没有考虑搜索参数,因此永远不会显示通过搜索筛选的记录

    此外,为了获得所有记录的计数,您不需要执行“选择*从..”操作,执行“选择计数(id)作为..的计数”操作效率更高


    如果要将搜索参数存储在$_会话中,请确保在PHP脚本顶部有SESSION_start()

    使用GET to search而不是POST。然后只需将搜索词传递到分页中的每一页。顺便说一句,“我会在完成后阻止它”-著名的临终遗言。建议:永远不要故意编写不安全的代码。你会忘记整理一些东西,和/或在重构时引入新的bug。最好从一开始就开始。另外,在处理会话时,在进行任何输出之前,确保代码中有
    session\u start()
    。使用GET搜索而不是POST。然后只需将搜索词传递到分页中的每一页。顺便说一句,“我会在完成后阻止它”-著名的临终遗言。建议:永远不要故意编写不安全的代码。你会忘记整理一些东西,和/或在重构时引入新的bug。最好从一开始就开始。另外,在处理会话时,在进行任何输出之前,确保代码中有
    session\u start()
    。在顶部插入session\u start()并搜索参数以显示其开始working@Magnus埃里克森-这不是计数(*)对计数(id),我说的是SELECT*FROM检索所有数据并通过mysqli_num_行获取计数-就像OPbut session的代码片段中所说的,但session没有销毁,我必须在单击另一个搜索键或另一个搜索键后放置session destroy()来销毁搜索筛选器会话link@Raj-如果你想“清除”会话变量just unset it-unset($会话['search'])能否解释一下@mike\t sir,会话如何开始工作,在哪行之后我必须使用unset($会话['search']),在顶部插入session\u start()并搜索参数以显示其开始后再次帮助我working@Magnus埃里克森-这不是计数(*)对计数(id),我说的是SELECT*FROM检索所有数据并通过mysqli_num_行获取计数-就像OPbut session的代码片段中所说的,但session没有销毁,我必须在单击另一个搜索键或另一个搜索键后放置session destroy()来销毁搜索筛选器会话link@Raj-如果你想“清除”会话变量刚刚取消设置-取消设置($_session['search'])能否解释一下@mike_t sir,会话如何开始工作,以及在哪一行之后我必须使用取消设置($_session['search']),再次帮助我,先生
    <?php
                     $total_num_page=1;
                    if(isset($_GET['page']))
                    {
                    $page_id=$_GET['page'];
                    }
                    else
                    {
                       $page_id=1;
                    }
                  if(isset($_POST['submitSearch']) || $_SESSION['search'])
                    {
    
                        if($_POST['submitSearch']){
                            $_SESSION['search']=$_POST['search'];  
                        }
    
                        $all_post_query= "select * from files where recieved_by like '%". $_SESSION["search"]. "%' or processed_by like  '%".$_SESSION["search"]."%' or   purpose like  '%".$_SESSION["search"]."%' or file_name like  '%".$_SESSION["search"]."%' order by date desc";
                        $all_post_run=mysqli_query($con,$all_post_query);
                        $all_post=mysqli_num_rows( $all_post_run);
                        $total_page=ceil($all_post/$total_num_page);
                        $page_start_from=($page_id-1)*$total_num_page;
                     }
                     else
                     {
                       $all_post_query="select * from files order by date desc";
                       $all_post_run=mysqli_query($con,$all_post_query);
                       $all_post=mysqli_num_rows($all_post_run);
                       $total_page=ceil($all_post/$total_num_page);
                       $page_start_from=($page_id-1)*$total_num_page;
                      }?>
    
       <?php
                        $p_query="select * from files order by date desc limit $page_start_from, $total_num_page";
                              $p_run=mysqli_query($con,$p_query);
                                if(mysqli_num_rows($p_run)){
                                 while($row=mysqli_fetch_array($p_run))
                                 {
                                    $c_id=$row['id'];
                                    $file=$row['file_name'];
                                    $purpose=$row['purpose'];
                                    $recieve=$row['recieved_by'];
                                    $processed=$row['processed_by'];
                                    $address=$row['address'];
                                    $contact=$row['contact_no'];
                                    $date=$row['date'];
    
    
                                ?>
                                                <tr>
    
                                                    <td><a  href="post.php?post_id=<?php echo $c_id?>"><?php echo $c_id;?></a></td>
                                                    <td><a href="post.php?post_id=<?php echo $c_id?>"><?php echo $file;?></a></td>
                                                    <td><a href="post.php?post_id=<?php echo $c_id?>"><?php echo $purpose;?></a></td>
                                                    <td><a href="post.php?post_id=<?php echo $c_id?>"><?php echo $recieve;?></a></td>
                                                    <td><a href="post.php?post_id=<?php echo $c_id?>"><?php echo $processed;?></a></td>
                                                    <td><a href="post.php?post_id=<?php echo $c_id?>"><?php echo $address;?></a></td>
                                                    <td><a href="post.php?post_id=<?php echo $c_id?>"><?php echo $contact;?></a></td>
                                                    <td><a href="post.php?post_id=<?php echo $c_id?>"><?php echo $date;?></a></td>
    ?>