gpt4 book ai didi

mysql - 简单分页

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:36 25 4
gpt4 key购买 nike

最近我一直在弄乱 ColdFusion 论坛脚本,我试图向它添加分页,以便它每页只显示 10 条评论,而不是全部。可悲的是,我只找到了执行此操作的复杂解决方案,而没有找到像我在 PHP 中习惯使用的简单解决方案。目前,这是我从数据库中获取评论的代码:

<cfquery name = "comments" datasource = "#DSN#">
SELECT *
FROM `forum_comments`
WHERE topicid = #id#
</cfquery>

因为我不想在为每个主题获取 1000 多条评论时让我的处理器重载,所以我想将所有评论分成几页,每页 10 条评论。这可能只需要对我的页面进行一些小的修改吗?我最好的猜测是使用 URL.page 语句和 MySQL 中的 LIMIT 函数,但我不知道如何做。

更新

我当前的所有代码:

<cfif IsDefined('URL.page')> // Pagination
<cfset page = URL.page>
<cfelse>
<cfset page = 1>
</cfif>

<cfset howManyRecsToShow = 10>
<cfset startRec = page*howManyRecsToShow>


<cfquery name = "comments" datasource = "#DSN#"> // Get all comments
SELECT *
FROM `forum_comments`
WHERE topicid = #id#
LIMIT #startRec#, #howManyRecsToShow#
</cfquery>




<cfset colour ="post_uneven"> // Required for CSS

<cfloop query="comments"> // Loop over comments


<div id="post_text">

<div id="post_text_edit" title="Edit"></div>
<div id="post_text_delete" title="Delete"></div>

<div id="post_text_title">
RE: #gettopic.title#
</div>

<div id="post_text_date">
#DateFormat(dateAdd("s", comments.timestamp, "01/01/1970"))# #TimeFormat(dateAdd("s", comments.timestamp, "01/01/1970"))#
</div>

<div id="post_text_text">
#comments.text#

</div>

</div>

</div>
</cfloop>

</cfoutput>



<cfif colour is "post_uneven"><cfset colour="post_even"><cfelse><cfset colour="post_uneven"></cfif> // Required for CSS




<div id="topic_info_balk">
<div id="forum_paginas">
<cfif page gt 1>
<a href="pageTest.cfm?page=#page-1#">PREVIOUS 10</a>&nbsp;|&nbsp;
</cfif>
<a href="?page=<cfoutput>#page+1#</cfoutput>">NEXT 10</a>
</div>

最佳答案

你说你想要一个简单的例子,所以就在这里。我所说的简单是指这将只显示 NEXTPREVIOUS 链接。如果您想要显示页数的稍微复杂的分页,那么您必须事先获得总记录数。 (我很快徒手输入了这个,现在不在我的 CF 服务器上,所以不确定这是否 100% 准确)...

(pageTest.cfm)

<cfif IsDefined("url.page")>
<cfset page = url.page>
<cfelse>
<cfset page = 1>
</cfif>

<cfset howManyRecsToShow = 10>
<cfset startRec = page*howManyRecsToShow>

<cfquery name="q1">
select id, username, email
from users
order by id limit #startRec# , #howManyRecsToShow#
</cfquery>

<cfoutput>
<table border="1">
<cfloop query="q1">
<tr>
<td>#q1.id#</td>
<td>#q1.username#</td>
<td>#q1.email#</td>
</tr>
</cfloop>
</table>
<cfif page gt 1>
<a href="pageTest.cfm?page=#page-1#">PREVIOUS 10</a>&nbsp;|&nbsp;
</cfif>
<a href="pageTest.cfm?page=#page+1#">NEXT 10</a>
</cfoutput>

关于mysql - 简单分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21064637/

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