Иметь простую страницу, которая извлекает результаты из MySQL и отображает их в виде таблицы. Я включил постраничный просмотр результатов и позволил пользователю устанавливать количество результатов, отображаемых на странице. Я передаю два значения строки запроса для обработки этого: «страница» и «количество».
Затем я беру эти значения, чтобы вычислить LIMIT в моем MySQL-запросе, используя директиву SQL_CALC_FOUND_ROWS
, а затем вызывая SELECT FOUND_ROWS();
, чтобы получить общее количество результатов. Все это прекрасно работает.
Теперь я хочу проверить значения строки запроса. Поскольку я сохраняю возможные «правильные» значения для результата / значения страницы «count» в массиве, я просто проверяю, что переданное значение «count» находится в этом массиве, и если не установлено его значение по умолчанию. Что касается значения «страница», у меня есть небольшой ментальный блок ... чтобы определить, есть ли какие-либо результаты для пропущенной «страницы», то есть она «правильная», мне нужно перейти в базу данных и сначала найдите счетчик результатов, но так как я хочу перейти к БД только один раз, мне нужно включить LIMIT, которые основаны на переданном значении «page» ... курица и яйцо. У меня есть пара мыслей о том, как решить эту проблему:
Запустите запрос, как указано выше, и, если результат (('page' - 1) * 'count') больше, чем значение, возвращаемое SELECT FOUND_ROWS();
, повторите запрос с новым набором LIMIT. до 0, счит.
Получите полный набор результатов, убедитесь, что переданная страница верна, затем выполните еще одно извлечение из базы данных со значениями LIMIT.
Я бы предпочел вообще не возвращаться к базе данных, но, как я уже упоминал, иметь умственный блок по этой довольно распространенной проблеме.
Спасибо
Пол