gpt4 book ai didi

php - 无论返回结果如何,MYSQL/PHP 分页显示 9 页

转载 作者:行者123 更新时间:2023-11-28 23:24:22 25 4
gpt4 key购买 nike

我在事件页面 mysql 查询中使用以下代码来显示当前日期的分页结果,但是即使结果总共只有 3 页等,它也会在分页链接中显示 9 页。有人可以帮助我识别为什么会这样?

            $per_page = 25;
$pages_query = mysql_query("SELECT COUNT('CompName') FROM my_db");
$pages = ceil(mysql_result($pages_query, 0) / $per_page);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $per_page;
$query = mysql_query("SELECT *, DATE_FORMAT(StartDate, '%d/%m/%Y') StartDate, CompName, HostState, Location, competitiontypedesc FROM my_db WHERE StartDate >= CURDATE() LIMIT $start, $per_page");

while($query_row = mysql_fetch_assoc($query)) {
echo"
<li class='kleo-masonry-item event-item'>
<div class='member-inner-list animated animate-when-almost-visible bottom-to-top start-animation grey-border'>
<div class='event-cell event-date-cell'>
<p class='no-margin'>" . $query_row["StartDate"] . "</p>
</div>
<div class='event-cell name'>
<p class='no-margin'>" . $query_row["CompName"] ." " .$query_row["LastName"]. "</p></div>
<div class='event-cell'>
<p class='no-margin'>" . $query_row["Location"] . "</p>
</div>
<div class='event-cell'>
<p class='no-margin'>" . $query_row["HostState"] . "</p>
</div>
</li>"
;
}

$prev = $page - 1;
$next = $page + 1;

if(!($page <= 1)){
echo "<a href='?page=$prev'><</a> ";}

if($pages >= 1){
for($x=1; $x<=$pages; $x++){
echo ($x == $page) ? '<b><a href="?page='.$x.'">'.$x.'</a></b> ' : '<a href="?page='.$x.'">'.$x.'</a>';}
}

if(!($page >= $pages)){
echo "<a href='?page=$next'>></a> ";}
}
}

最佳答案

因为当你计算行数时,你总是计算整个表格。

$pages_query = mysql_query("SELECT COUNT(`CompName`) FROM my_db");

但是当你获取数据时,你在 where 子句中有一个 StartDate 条件。

$query = mysql_query("SELECT *, DATE_FORMAT(StartDate, '%d/%m/%Y') StartDate, CompName, HostState, Location,  competitiontypedesc FROM my_db WHERE StartDate >= CURDATE() LIMIT $start, $per_page");

因此,您应该在计数查询中添加与 StartDate 相同的条件。

$pages_query = mysql_query("SELECT COUNT(`CompName`) FROM my_db WHERE StartDate >= CURDATE()");

实际上,count(*) 会比 count(CompName) 更好。

$pages_query = mysql_query("SELECT COUNT(*) FROM my_db WHERE StartDate >= CURDATE()");

https://www.percona.com/blog/2007/04/10/count-vs-countcol/

关于php - 无论返回结果如何,MYSQL/PHP 分页显示 9 页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39969157/

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