Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: MySQL - Ограничение выборки количества записей при объединении
Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Существуют 2 таблицы: таблица с сообщениями (message) и таблица с данными пользователей (users).
Вот код запроса, который выбирает сообщения с message и аватарку с users:
$query=sprintf('SELECT m.id, m.sender, m.theme, m.text_mes, m.date, m.fno, u.avatar FROM message m INNER JOIN users u ON m.sender=u.username WHERE m.receiver="%s" AND m.fr="%s" ORDER BY m.date DESC ',$user,"1");
fr - flag receiver, флаг который отвечает за показ сообщения на странице получателя 1-показывать, 0 - нет
И какая собственно проблема: нужно сделать выборку на ограниченное количество записей для постраничной навигации... вот только оказалось, что вот так запрос не катит:
$query=sprintf('SELECT m.id, m.sender, m.theme, m.text_mes, m.date, m.fno, u.avatar FROM message m INNER JOIN users u ON m.sender=u.username WHERE m.receiver="%s" AND m.fr="%s" ORDER BY m.date DESC LIMIT %s, %s',$user,"1",$start,$num);
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
var_dump($query); и смотрите, что там у вас реально происходит.
Ну и, конечно, классика жанра phpfaq.ru/debug и mysql_error
----- PostgreSQL DBA
oleg000_som
Отправлено: 30 Июня, 2011 - 18:23:47
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Дельный совет!
Я просто облажался в коде.
Запрос на выборку кол-во записей шел не в ту таблицу и в результате мой описанный запрос выше просил вывести LIMIT -3, 3 записей.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.