Здравствуйте. В таблице article есть определенное кол-во статей. На странице они выводятся в порядке возрастания. В итоге, самые новые статьи оказываются на самой последней странице. Пытаюсь выводить в обратном порядке таким образом: PHP: for ($i = $num_result; $i>0; $i--) { $row = mysql_fetch_array($result); //остальной код } Но толку от этого нет. Они как выводились по возрастанию, так и выводятся. И еще 1 вопрос: как сделать так, чтобы автоинкриментирование учитывало удаленные ранее материалы? Я раньше добавил, допустим до 100 статьей, а потом удалил их. По сути, оно должно начать снова присваивать номера от 1 до 100, но оно присваивает 101, 102 и т.д.
Не спеши, вникай в свой код. Функция mysql_fetch_array() извлекает по одной записи из $result в том порядке, в каком они были получены от базы данных. Условия цикла ни на что не влияют. Лучше всего изменить запрос к базе, добавить в конец оператор DESC. Еще можно собрать все статьи в массив и из него уже с помощью обратного отсчета вывести статьи.
PHP: $result = mysql_query("SELECT * FROM article LIMIT $quantity OFFSET $list ORDER BY id DESC;"); Если так, то, мне выдает ошибку mysql_num_rows() expects parameter 1 to be resource, boolean given in На вот этой строке PHP: $num_result = mysql_num_rows($result);
У тебя скорее всего возвращается ложь (false) в результате запроса. Вот и ругается функция, в которую нужно помещать выборку.
И я понять не могу почему запрос не работает. Без LIMIT и OFFSET все хорошо, а с ними не работает. Может быть нельзя сортировать данные, если указан лимит?
А ты можешь выбрать что-то одно, LIMIT или OFFSET. Я не уверен, но судя по тому что пишет справочник, нужно использовать или то или то.
Без DESC работает и LIMIT, и OFFSET. Ошибка выдает следующее: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY id DESC' at line 3
Попробуй так: PHP: $result = mysql_query("SELECT * FROM article ORDER BY id DESC LIMIT $quantity OFFSET $list"); --- Добавлено --- Или без OFFSET $list