Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP&MySQL: Постраничный вывод

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
mysql_query("SELECT * FROM `Reviews` LIMIT ".(($page-1)*10).",10" ) or die(mysql_error());  

Изменил запрос, но ошибок не выдает. А главное что для меня код логичен и все должно работать.  
Что еще можно предпринять для выявления ошибки?

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 01:00 29-07-2009 | Исправлено: DarkSmoke, 01:24 29-07-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke

Цитата:
Что еще можно предпринять для выявления ошибки?

я же сказал - сделайте echo запросу и покажите для двух страниц
ps: и раз уж так написали, то на кой черт вам два одинаковых запроса?

Цитата:
$result = mysql_query("SELECT * FROM `Reviews`");
$result = mysql_query("SELECT * FROM `Reviews` LIMIT ".(($page-1)*10).",10" );  

в чем смысл? если хотите подсчитать, то делайте в лоб, а не тягайте инфу в первый раз

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:46 29-07-2009 | Исправлено: Cheery, 01:47 29-07-2009
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Код:
echo $result = mysql_query("SELECT * FROM `Reviews` LIMIT ".(($page-1)*10).",5" ) or die(mysql_error());

Во всех случаях выдает 1.  
И что теперь делать?
 

Цитата:
$result = mysql_query("SELECT * FROM `Reviews`");

Этим я вытаскиваю все записи из базы, что бы подсчитать их количиства, чтобы потом поделить на количество сообщений на страницу и узнать сколько должно быть страниц.
А этим
Цитата:
$result = mysql_query("SELECT * FROM `Reviews` LIMIT ".(($page-1)*10).",10" );  

Уже непосредственно вывожу нужное количество сообщений.
 
А что я как то не так сделал? Можно проще?

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 11:45 29-07-2009 | Исправлено: DarkSmoke, 11:46 29-07-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke
мда.....
Выводить нужно то, что внутри функции mysql_query, а не результат выполнения.
Насчет подсчета читайте про функцию count в mysql, иначе два раза гоняете данные из базы, что бессмысленно.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 17:24 29-07-2009
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
А как это вывести? Просто в SQL сделать этот запрос? Ну тогда он все выводит.
 

Цитата:
Насчет подсчета читайте про функцию count в mysql, иначе два раза гоняете данные из базы, что бессмысленно.

Прочел про count и тогда возникает вопрос: Куда его впихнуть так как LIMIT ограничивает количество запрса.

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 12:50 30-07-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke

Цитата:
Прочел про count и тогда возникает вопрос: Куда его впихнуть так как LIMIT ограничивает количество запрса

плохо читали... очень плохо.
еще раз - вы сейчас два раза выбираете кучу одинаковых данных.
в первый раз все сразу, для подсчета.
во второй раз кусок их же.
поэтому либо, раз уж вытащили, делаете вывод части массива данных полученных в первом запросе (что плохо), либо в первом запросе считаете через count общее количество записей, а вторым уже вытаскиваете часть.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:42 30-07-2009
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Хорошо с count буду сейчас разбираться, а вот что содержимое мтраниц, кроме первой, не отображается?

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 10:11 31-07-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke
я, вроде бы, сказал что сделать. Или не читаете?
Покажите как выглядят запросы

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 10:34 31-07-2009
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Да я  не понимаю как его показать, что сделать надо?

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 13:20 31-07-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke

Цитата:
Да я  не понимаю как его показать, что сделать надо?

PHP&MySQL: Постраничный вывод
читали?  
echo "SELECT * FROM `Reviews` LIMIT ".(($page-1)*10).",10";
и все!

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:48 31-07-2009
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
echo "SELECT * FROM `Reviews` LIMIT ".(($page-1)*10).",10";  
и все!

SELECT * FROM `Reviews` LIMIT 0,10  - вот что вывело. И о чем это говорит? Запрос вроде правильно выглядит.

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 17:14 01-08-2009 | Исправлено: DarkSmoke, 17:15 01-08-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke
ну, а на нерабочих страницах? Вам же сказано было - и там и там.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:00 01-08-2009
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SELECT * FROM `Reviews` LIMIT 10,10 - на не рабочих .. все четко...  
Я извеняюсь, мало опыта отладки.

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 09:28 02-08-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke
ну, а сколько записей в таблице?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 10:21 02-08-2009
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
14

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 12:32 02-08-2009
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Фух, с этой проблемой разобрался... Теперь COUNT(*).
Если я делаю такой запрос
Код:
SELECT COUNT(*)  FROM `Reviews` ORDER BY `id` DESC LIMIT 0,10;  
то он мне просто считает количество строк и не выводит записи из таблицы. Почему?

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 17:40 02-08-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke
и в чем была проблема?
Насчет подсчета - еще раз в мануал. Count считает, а не возвращает данные

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 18:33 02-08-2009
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
Ну вы говорили, что можно обойтись одним запросом, а не двумя как у меня. Вот я и тулю COUNT в запрос.

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 10:13 03-08-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke
где я такое говорил? Не надо придумывать. Я говорил, что не надо гонять все записи для оценки их количества.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 10:23 03-08-2009
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
Все, понял. Спасибо.
 
Добавлено:
делаю так:

Код:
$result = mysql_query('SELECT COUNT(*) FROM `Reviews`');
$vsego_strok = mysql_fetch_row($result);

 
Ошибка:

Цитата:
Fatal error: Unsupported operand types in

Вот эта страка:

Код:
$skolko_stranic = ceil($vsego_strok/10);

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 10:36 03-08-2009 | Исправлено: DarkSmoke, 11:05 03-08-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP&MySQL: Постраничный вывод


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru