Вместо того, чтобы публиковать это снова, я решил переписать и описать его здесь.
Я получил следующий бит кода от jtheman, который позволяет мне выбирать 52 обновления из моей БД и добавляет новый и удаляет старую каждую неделю. Он работает абсолютно идеально.
Его код:
$starttime = strtotime("28 December 2012"); // a recent Friday $week = 7 * 24 * 60 * 60; // time value of a week $posts = 185; // number of posts in your db $limit = 52; // number of shown posts $offset = floor((time()-$starttime)/$week); // rounds down difference in weeks from startdate until now while ($offset>$posts-$limit) $offset = $offset - ($posts-$limit); // this will start over when you have reached the end of the cycle ie offset 148...
И мой запрос:
// retrieve all update details $conn = dbConnect('query'); $sql = "SELECT * FROM updates WHERE flag_live = 'Y' ORDER BY update_id DESC LIMIT ".$offset.",".$limit; $result = $conn->query($sql) or die(mysqli_error()); $uInfo = $result->fetch_assoc();
Опять же, это работает отлично. Новая проблема заключается в том, что я получаю 52 обновления на одной странице, и я хотел бы иметь возможность устанавливать, скажем 4 на страницу, и прокручивать 13 страниц вместо одной длинной страницы.
Итак, что я хочу сделать, это изменить этот запрос, чтобы были выбраны 52 обновления (и добавлена новая, а старая удаляется каждую пятницу), но где я могу показывать только, скажем, 4 за раз на странице , Я понял, что это не вопрос с разбивкой по страницам, так как он пишет запрос, чтобы сделать две функции.
Это можно сделать с помощью подзапроса? Я мог бы просто использовать слайдер jQuery или эквивалент для разбивки на страницы, но я действительно хочу этого избежать.
Большое спасибо!