2013-03-03 3 views
0

Я пытаюсь выяснить способ иметь следующий кнопки предыдущего и для отображения большего количества данных для данного запроса-Сорта, как пагинация будет делать.MySql предыдущий/следующий запрос

Запрос заключается в следующем:

$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;"; 

Как я могу получить предыдущий идентификатор и следующий идентификатор использовать для следующей/предыдущей кнопки для обновления строки запроса?

ответ

1

Вы можете получить их с помощью переменных $ _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 пунктов.

+0

поэтому pagenumber = 0 будет продукт ** 0,6 **, но pagenumber = 1 будет производить ** 10,6 ** .. не должно быть ** 5,6 **? – StealthRT

+0

, так что если p_num ** ** **, то его ** - 6 ** (0-1 * 6)? – StealthRT

+0

@StealthRT, это основная воздушная смесь. Это не код для меня для сообщества. В любом случае проверьте обновление. – Starx

0

Вы можете передать переменные для границ LIMIT. В этом случае предыдущий идентификатор будет null и следующий идентификатор может быть 7. Если вы хотите всегда X записи в то время, вы могли бы сделать LIMIT $next_ID, ($next_ID + $X) и изменить свои предыдущие и следующие переменные соответственно.

Смежные вопросы