Помогите исправить скрипт PHP

12
Ilekor
На сайте с 22.04.2009
Offline
138
1102

Сам скрипт обрабатывает файлы по типу MYSQL


// подключим работу с базой данных
require_once("fSQL.php");
$fdb = new fSQLEnvironment;
$fdb->define_db("db_c", "database");
$fdb->select_db("db_c");

Далее делаем запрос


$cl_result = $fdb->query("SELECT * FROM baza ORDER BY date_add DESC LIMIT 10,10");

Суть проблемы в том что если LIMIT 0,10 все выводится, но как только LIMIT 10,10 и более ничего не выводит.

Сам скрипт https://cloud.mail.ru/public/b842319b3395/fSQL.php

Помогите разобраться с проблемой.

Создать базу

$fdb->query("CREATE TABLE baza (

id INT NOT NULL AUTO_INCREMENT,
date_add DATE,
PRIMARY KEY(id)
)");
Лучший дорген 21 века AgDor(http://agdor.info)
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#1

Эм.... Вы вообще почитайте как работает LIMIT

Вы что хотите вообще вывести то?

Проблемы никакой нету. Инструкцию к инструменту почитайте.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
N3
На сайте с 28.04.2014
Offline
98
#2
LEOnidUKG:
Эм.... Вы вообще почитайте как работает LIMIT

Вы что хотите вообще вывести то?

А что там не так? Человек хочет вывести следующие 10 строк начиная с 10 строки.

Неискоренимо нежелание пользоваться поисковыми системами - даже находясь на форуме о поисковых системах © Cell Влазить напрямую в базу — это невозможно © Игорь Белов, mchost.ru Если SeoPult купил ссылку - значит она "рабочая" © Nat_SeoPult
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#3
Nam3D:
А что там не так? Человек хочет вывести следующие 10 строк начиная с 10 строки.

Я уже написал, что нет. Инструкцию прочитайте и всё заработает. Я не знаю, что человек хочет, я вижу, что он говорит скрипту вывести данные между 10 и 10 строчкой.

Mr_Mingaev
На сайте с 30.07.2014
Offline
6
#4

Если тебе нужно вывести следующие 10 записей то есть специальный параметр OFFSET, запрос ниже выведет 10 записей со смещением на 10. Я думаю именно это тебе и нужно.


$cl_result = $fdb->query("SELECT * FROM baza ORDER BY date_add DESC LIMIT 10 OFFSET 10 ");
Mr_Mingaev
На сайте с 30.07.2014
Offline
6
#5

Чтобы сделать смещение используй параметр OFFSET в запросе.

$cl_result = $fdb->query("SELECT * FROM baza ORDER BY date_add DESC LIMIT 10 OFFSET 10");
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#6

Хотя стоп, а записей то сколько в таблице? Чуть запутал тоже человека. В коде всё ок.

Mr_Mingaev, не надо писать OFFSET, запятая и так это означает.

Ilekor
На сайте с 22.04.2009
Offline
138
#7

Как работает лимит я знаю, первый параметр с какой записи начать выборку, второй сколько выводить.

В таблице у меня 300+ записей, я сделал постраничную навигацию, по 10 записей на страницу, проблема в том что, если мы на первой странице все первых 10 записей из запроса выводятся, если перехожу на 2-ю страницу или любую выше первой, записи не выводятся, считается все правильно, сколько строк в таблице и строк на вывод, а вот сами записи не выводятся.


while ( $row = $fdb->fetch_array( $cl_result ) ) {
echo $row['date_add'];
}
VHS
На сайте с 28.09.2007
Offline
142
VHS
#8

Ужас прям какой-то...

А если вывести на экран текст запроса получения данных и mysql_error() - ничего понятнее не становится?

Ilekor
На сайте с 22.04.2009
Offline
138
#9
VHS:
Ужас прям какой-то...


А если вывести на экран текст запроса получения данных и mysql_error() - ничего понятнее не становится?

$fdb->error()

ничего не показывает.

Запрос обрабатывается, потому как пересчитывает количество строк, а вот

$fdb->fetch_array( $cl_result )

уже пустой, он ничего не показывает.

на первой странице (LIMIT 0,10) все данные выводит, на всех последующих запрос проходит, а вот данные отсутствуют.

VHS
На сайте с 28.09.2007
Offline
142
VHS
#10
Ilekor:
$fdb->error()


ничего не показывает.
Запрос обрабатывается, потому как пересчитывает количество строк, а вот

$fdb->fetch_array( $cl_result )


уже пустой, он ничего не показывает.

на первой странице (LIMIT 0,10) все данные выводит, на всех последующих запрос проходит, а вот данные отсутствуют.

Попробую по другому.

Напишите в php коде после вызова запроса:

print mysql_error();

то что там в коде обработчика - неинформативно.

Запрос обрабатывается, потому что пересчитывается количество строк - вот тут вообще непонятно. Что он пересчитывает если пустой?

Огромная доля вероятности того, что в текст запроса непопадают данные, или попадают криво. Рабочий код или работает всегда, или спотыкается на криво подсунутых параметрах, или на отсутствии данных для обработки. Поэтому начнем c ошибок SQL.

---------- Добавлено 31.07.2014 в 14:36 ----------

Да, чтобы совсем просто - текст запроса в phpmyadmin и сделать выборку.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий