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つのアイテムが含まれる2番目のページにクエリが送信されます。

于 2013-03-03T22:18:32.930 に答える
0

LIMIT境界の変数を渡すことができます。この場合、前のIDは7になりnull次のIDは7になります。一度にXレコードが常に必要な場合はLIMIT $next_ID, ($next_ID + $X)、それに応じて前の変数と次の変数を変更できます。

于 2013-03-03T22:17:42.920 に答える