PHP извлекает записи из базы данных, используя LIMIT и OFFSET с ORDER BY id - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь извлечь записи из БД, используя LIMIT и OFFSET, что работает нормально, но когда я добавляю ORDER BY id в конце, это не удается.

Мой код выглядит так: (этот работает нормально)

$sql6 = "SELECT * FROM products WHERE cat = 'category' LIMIT 10 OFFSET 0";
    $result6 = $conn->query($sql6);
        if ($result6->num_rows > 0) { 
        while($row6 = $result6->fetch_assoc()) { 
        echo $row6["position"];
} } else{}

Хотя после добавления ORDER он не показывает никаких записей:

$sql6 = "SELECT * FROM products WHERE cat = 'category' LIMIT 10 OFFSET 0 ORDER BY id DESC";
    $result6 = $conn->query($sql6);
        if ($result6->num_rows > 0) { 
        while($row6 = $result6->fetch_assoc()) { 
        echo $row6["position"];
} } else{}

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 29 мая 2018

LIMIT должно быть в конце оператора:

SELECT * FROM products WHERE cat = 'category'  ORDER BY id DESC LIMIT 10 OFFSET  0

Из документации :

SELECT [ALL |DISTINCT |DISTINCTROW] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE |SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr ...] [FROM table_references [WHERE where_condition] [GROUP BY {col_name |expr |положение} [ASC |DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name |expr |положение} [ASC |DESC], ...] [LIMIT {[offset,] row_count |row_count OFFSET смещение}] [PROCEDURE имя_процедуры (список_ аргументов)] [INTO OUTFILE 'имя_файла' [CHARACTER SET charset_name] export_options |INTO DUMPFILE 'имя_файла' |INTO var_name [, var_name]] [FOR UPDATE |LOCK IN SHARE MODE]]

Кстати: проверка ошибок после выполнения оператора

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...