[英]mySQL previous/next query
我试图想出一个办法有一个和下一个按钮,像一个分页会做一个给定的查询八九不离十显示更多的数据。
查询是这样的:
$query = "SELECT *
FROM wp_posts p
LEFT OUTER JOIN wp_term_relationships r ON r.object_id = p.ID
LEFT OUTER JOIN wp_term_taxonomy x ON x.term_taxonomy_id = r.term_taxonomy_id
LEFT OUTER JOIN wp_terms t ON t.term_id = x.term_id
LEFT JOIN wp_postmeta pm ON p.id = pm.post_id
WHERE p.post_status = 'publish'
AND pm.meta_key = 'xTraData'
AND p.post_type = 'post'
AND t.slug = 'press-coverage'
ORDER BY p.post_date DESC LIMIT 0,6;";
如何获取上一个ID和下一个ID以用于刷新查询字符串的下一个/上一个按钮?
您可以使用$ _GET变量来获取它们,该变量可以从URL发送。 处理它们以提高您的极限。
mysql限制定义了要获取多少行以及从何处获取。
所以, 0, 6
在查询中说,从开始0
(第一),并选择6
行。
$p_num = isset($_GET['pagenumber']) && (int)$_GET['pagenumber'] > 0 ? $_GET['pagenumber'] : 0;
$p_size = 6;
$query = "SELECT *
FROM wp_posts p
LEFT OUTER JOIN wp_term_relationships r ON r.object_id = p.ID
LEFT OUTER JOIN wp_term_taxonomy x ON x.term_taxonomy_id = r.term_taxonomy_id
LEFT OUTER JOIN wp_terms t ON t.term_id = x.term_id
LEFT JOIN wp_postmeta pm ON p.id = pm.post_id
WHERE p.post_status = 'publish'
AND pm.meta_key = 'xTraData'
AND p.post_type = 'post'
AND t.slug = 'press-coverage'
ORDER BY p.post_date DESC LIMIT ".(($p_num-1) * $p_size).",".$p_size.";";
现在,发送一个请求,例如: yourpage.php?pagenumber=2
,它将查询第二页,该页将包含大约6个项目。
您可以传入LIMIT界限的变量。 在这种情况下, 上一个id为null
, 下一个id为7。如果您始终一次需要X个记录,则可以执行LIMIT $next_ID, ($next_ID + $X)
并相应地修改上一个和下一个变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.