gpt4 book ai didi

来自 Mysql 的 Php 分页 Select * Where;如果单击下一个页码,则显示来自 Mysql 的所有行

转载 作者:行者123 更新时间:2023-11-30 23:17:06 26 4
gpt4 key购买 nike

在输入字段中,用户输入条件 - 从 mysql 获取什么数据。例如,用户想要获取月份为 10 月(或 10 日)的 mysql 行。

在这里我得到用户输入 $date_month = $_POST['date_month'];

然后是分页的mysql语句和代码

try {
$sql = $db->prepare("SELECT * FROM 2_1_journal WHERE RecordMonth = ? ");
$sql->execute(array($date_month));

foreach ($sql as $i => $row) {
}

$number_of_fetched_rows = $i;
$number_of_results_per_page = 100;
$total_pages = ceil($number_of_fetched_rows / $number_of_results_per_page);

if (isset($_GET['page']) && is_numeric($_GET['page'])) {
$show_page = $_GET['page'];

if ($show_page > 0 && $show_page <= $total_pages) {
$start = ($show_page -1) * $number_of_results_per_page;
$end = $start + $number_of_results_per_page;
}
else {

$start = 0;
$end = $number_of_results_per_page;
}
}
else {
$start = 0;
$end = $number_of_results_per_page;
}

for ($page_i = 1; $page_i <= $total_pages; $page_i++) {
echo "<a href='__filter_mysql_data.php?page=$page_i'>| $page_i |</a> ";
}

}

因此,用户输入月份 (10),脚本显示月份为 10 的所有行;显示第 1 页。但是如果用户单击其他页码,脚本将显示来自 mysql 的所有数据(所有月份,不仅是 10 个)

我看到的 - 当点击其他页码时,页面重新加载,这意味着 php 变量的值“消失”。据了解,页面重新加载后 $date_month 值未设置(已丢失/“消失”)?如何保值?或者可能有更好的分页解决方案?

更新。

行为如下:

1) 在输入字段中设置第 10 个月(10 月);

2) 单击按钮并从 mysql 中获取显示的数据,其中月份为 10(十月);目前还可以

3) 点击第2页,显示所有来自mysql的数据(所有月份,不仅是10(十月))

尝试使用 LIMIT 但它没有帮助。

可能问题与这段代码有关

for ($page_i = 1; $page_i <= $total_pages; $page_i++) {
echo "<a href='__filter_mysql_data.php?page=$page_i'>| $page_i |</a> ";
}

当出于无法理解的(对我而言)原因单击 $page_i 时,会显示来自 mysql 的所有(未过滤)数据。如果我使用 LIMIT 也会显示来自 mysql 的未过滤结果....

最佳答案

在你的查询中使用LIMIT,看看下面的example ,您可以尝试类似的操作:

SELECT 
*
FROM
2_1_journal
WHERE
RecordMonth = ?
LIMIT [start_row],[number_of_rows_per_page]

例如,假设您有 2 个页面,每页 10 行,那么 2 个查询(每页一个)的 LIMIT 将是:

1) 限制 0,10
2) 限制 10,10

关于来自 Mysql 的 Php 分页 Select * Where;如果单击下一个页码,则显示来自 Mysql 的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17141849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com