我对 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查询,但这也不起作用。