0

我正在尝试找到一种方法来使用一个和下一个按钮来为给定的查询排序显示更多数据,就像分页一样。

查询是这样的:

$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用于下一个/上一个按钮以刷新查询字符串?

4

2 回答 2

1

您可以使用可以从 URL 发送的 $_GET 变量来获取它们。处理它们以提高您的极限。

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 个项目。

于 2013-03-03T22:18:32.930 回答
0

您可以传入 LIMIT 界限的变量。在这种情况下,前一个 id将是null下一个 id可能是 7。如果您一次总是想要X条记录,您可以相应地LIMIT $next_ID, ($next_ID + $X)修改您的上一个和下一个变量。

于 2013-03-03T22:17:42.920 回答