为什么从 URL 获取新信息时我的变量值没有更新?

问题描述 投票:0回答:0

我对 PHP 比较陌生,我正在尝试制作一个排序系统来显示我数据库中的信息。但是,当尝试这样做时,我遇到了一个问题,除了一部分之外,代码有效。当我尝试根据我在 URL 中传递的信息更新变量时,变量没有更新。 (分页系统是用 AJAX 制作的)。

到目前为止我的代码如下所示:

<div class="dropdownoptions">
        <div class="sortBy">
            <form action="" method="GET">
            <select name="sort_by">
               <option value="">--Select Option--</option>
               <option value="12"<?php if(isset($_GET['sort_by']) && $_GET['sort_by'] == "12"){echo "selected";}?>>12</option> 
               <option value="24"<?php if(isset($_GET['sort_by']) && $_GET['sort_by'] == "24"){echo "selected";}?>>24</option>
            </select> 

            <button type="submit"> Sort </button>   
            </form>
        </div>
    </div>
<?php
include ('php/dbh.inc.php');

$limit = 12; 
if(isset($_GET["sort_by"])){
    if($_GET["sort_by"] == "12") {
        $limit = 12;
    }
    elseif($_GET["sort_by"] == "24") {
        $limit = 24;
    }
}

if (isset($_GET["page"])) { $page_number  = $_GET["page"]; } else { $page_number=1; };  
$initial_page = ($page_number-1) * $limit;

$sql = "SELECT * FROM movie LIMIT $initial_page, $limit;";

$result = mysqli_query($conn, $sql);  
?>

当我将

$limit = 12;
更改为例如
$limit = 24
时,它工作正常。但是,当我尝试使用 URL 和 $_get 方法中传递的值来请求更新金额时,没有任何反应。经过一些故障排除和尝试后,我认为问题可能出在这部分代码上:

if(isset($_GET["sort_by"])){
    if($_GET["sort_by"] = "12") {
        $limit = 12;
    }
    elseif($_GET["sort_by"] = "24") {
        $limit = 24;
    }
}

但是我不确定也不知道应该怎么做,非常感谢任何帮助!

(我将来也想用字符串来做这件事,但我认为从更改整数值开始会更容易。)

我研究了多种尝试更改变量的方法,并且我还尝试了不使用 AJAX 的分页系统。我也试图让它不仅可以改变变量

$limit
而且可以改变整个sql查询,但这也不起作用。

php mysqli pagination get
© www.soinside.com 2019 - 2024. All rights reserved.