繁体   English   中英

MySQL的上一个/下一个查询

[英]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界限的变量。 在这种情况下, 上一个idnull下一个id为7。如果您始终一次需要X个记录,则可以执行LIMIT $next_ID, ($next_ID + $X)并相应地修改上一个和下一个变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM