我想用php&;中的分页保存下拉列表中的排序结果;mysql

我想用php&;中的分页保存下拉列表中的排序结果;mysql,php,mysql,html,sorting,Php,Mysql,Html,Sorting,大家好:我有一个问题,我的网站是他们的工作。我在一个解决方案上搜索了5天,但我找不到任何我需要的结果 简而言之:我有一个汽车列表,我想按价格降序和升序对它进行排序使用下拉列表,我使用分页将记录拆分为一页中的5项 例如,当我从下拉列表中选择降序时,它会显示成功的结果,但当我转到分页排序的下一页时,它会丢失 我正在尝试使用会话,但尚未工作,当我按下下一页时,仍然会丢失排序 我确实在第一次重播后修改了代码更新,但问题仍然存在:( 这是我的html代码: <?php session_start(

大家好:我有一个问题,我的网站是他们的工作。我在一个解决方案上搜索了5天,但我找不到任何我需要的结果

简而言之:我有一个汽车列表,我想按价格降序和升序对它进行排序使用下拉列表,我使用分页将记录拆分为一页中的5项

例如,当我从下拉列表中选择降序时,它会显示成功的结果,但当我转到分页排序的下一页时,它会丢失

我正在尝试使用会话,但尚未工作,当我按下下一页时,仍然会丢失排序

我确实在第一次重播后修改了代码更新,但问题仍然存在:(

这是我的html代码:

 <?php session_start();?>

   <select name="price"  id="price" class="css-dropdowns" tabindex="1" >
                                    <option value="0">Price Ascending</option>
                                    <option value="1">Ascending</option>
                                    <option value="2">Descending</option>
                                </select>
这是显示数据和排序的查询:

    $sql_paging="select c.car_id,car_name,price,model_year,drive_traine,mile_age,exterior_color,interior_color,mbg,stocke_num,vin_num,video_url,image,body_style,cylinders_num,displacement,gearbox_speed,gearbox_type,brand_name
    from car as c join car_body as cb
    on c.car_id = cb.car_id
    join  engine as e
    on c.car_id = e.car_id
    join brand as b 
    on b.brand_id = c.brand_id
    join transmission as t 
    on c.car_id = t.car_id"; 
    //to submit the dropdown list to get sort i want  
    if($_SERVER['REQUEST_METHOD']=='POST')
    { 
   { 

    $_SESSION["price_filter"]=$_POST["price_filter"]; // call the ajax function to submit price drop down list
    if (isset($_SESSION["price_filter"]) && !empty ($_SESSION["price_filter"])) 
    {
         //query to show price 1 result
       if ($_SESSION["price_filter"] == 1)
          {
       $sql_paging.=" order by price asc";

          }
        else if($_SESSION["price_filter"] == 2)
         {
    $sql_paging.=" order by price desc";
          $_SESSION["price"]=($price ==2);
          } 
        } //end of if filter

    }//end of if request

    $sql_paging.=" LIMIT $offset,$recored_limit";

    if(!$paging_result=$db->query($sql_paging))
    {
    die ($db->error);   
    }

    while($row=$paging_result->fetch_assoc()) 
        {
    ##I don't paste all of codes it's just part of them for example ##
    <code> echo "price".$row["price"]; } 
这部分使用session进行分页,以便在转到下一页时保留排序结果

<!-- 1 st page-->  
<li class=""> <a href="<?php echo $_SERVER["PHP_SELF"]."?page="."1"."&f=".$_SESSION["price_filter"]?>"><i class="fa fa-angle-left"></i></a></li>

<?php  

for ($i=1; $i<=$total_page; $i++)

{?>

<li><a href="<?php echo $_SERVER["PHP_SELF"]."?page=".$i."&f=".$_SESSION["price_filter"]?>"><?php echo $i;?></a></li>

<?php } // end of for  ?> 

<!-- last page-->                            
<li><a href="<?php echo $_SERVER["PHP_SELF"]."?page=".$total_page ?>"><i class="fa fa-angle-right"></i></a></li>

  • 最后,这是第一个问题,也是第一个尝试在这个网站上提问的问题 有人能帮我修一下这个密码吗


    很抱歉英语不好

    您必须定义$offset,如:

    $offset=$i*$recored_limit;
    
    $recored\u限制也需要定义,请尝试:

    $recored_limit=5;
    
    限制返回您从$offset中重新记录的$recored\u限制记录; 要保存过滤器上升,请执行以下操作:

    $_SESSION["price_filter"]=$_POST["price_filter"]
    ...
    if ($_SESSION["price_filter"] == 1){
       $sql_paging.=" order by price asc";
    }
    elseif($_SESSION["price_filter"] == 2){
       $sql_paging.=" order by price desc";
    }
    

    我在主要问题中添加了分页功能,我试图通过修改解决我的代码,但问题仍然存在
    $\u会话[“price\u filter”]=$\u POST[“price\u filter”];//如果(isset($\u会话[“price\u filter”])和&!empty($\u会话[“price\u filter”]){//查询以显示price 1结果,如果($会话[“价格过滤器”]==1){$sql\u分页。=“按价格asc排序”;}否则如果($会话[“价格过滤器”]==2){$sql\u分页。=“按价格说明排序”;$会话[“价格”]==($price==2);}//结束过滤器
    1)分页是否有效?2)尝试修改$会话[“价格过滤器”=$POST[“价格过滤器”];如果(isset($\u POST[“price\u filter”]){$\u会话[“price\u filter”]=$\u POST[“price\u filter”];}您是否启动`的会话?var_转储什么($_会话);输出?分页工作。。我尝试了这个修改,但问题仍然存在:/我不知道如何修复它。。!!当我刷新页面而不选择任何排序时,屏幕字符串(1)“2”上的该值
    $_SESSION["price_filter"]=$_POST["price_filter"]
    ...
    if ($_SESSION["price_filter"] == 1){
       $sql_paging.=" order by price asc";
    }
    elseif($_SESSION["price_filter"] == 2){
       $sql_paging.=" order by price desc";
    }