SELECT ... WHERE

yeaahhh

Старатель
Регистрация
8 Май 2008
Сообщения
278
Реакции
11
Друзья, хочу у пользователя вывести все сообщения его друзей.
Получаю в цикле id друзей и засовываю в переменную для запроса.
PHP:
$vsevse .= " idpoluchatel='".$mypod['id_friend']."' AND";

Далее переменную $vsevse подставляю в запрос.

PHP:
mysql_query("SELECT *
            FROM mess WHERE ".$vsevse." veranon != '2'
            ORDER BY date DESC LIMIT 0, 5")

И ничего не выводится..
Пробовал AND, OR, LIKE..
Если у тебя в друзьях 1 пользователь, то все его сообщения выводятся исправно..
Подскажите, плиз, что не так в запросе к БД?
Заранее спасибо
 
Цикл должен быть в формате IN(id_друзей через запятую)

Пример:
mysql_query("SELECT * FROM mess WHERE idpoluchatel IN(2,3,10,12) AND veranon != '2' ORDER BY date DESC LIMIT 0, 5")
 
Пробуйте так:
PHP:
<?php
$poluchatels = array();
for(;;) {
	$poluchatels[] = (int)$mypod['id_friend'];
}
if (sizeof($poluchatels) > 0) {
	mysql_query("SELECT * 
				FROM mess 
				WHERE idpoluchatrel IN (" . implode(",", $poluchatels) . ") 
				AND veranon != '2' 
				ORDER BY date DESC LIMIT 0, 5")
}
?>
 
если ИД друзей выбираются из базы, то оптимальнее сделать запрос с подзапросом:

SELECT * FROM mess WHERE idpoluchatel IN(select id_druga from druzya ...) AND veranon != '2' ORDER BY date DESC LIMIT 0, 5
 
Назад
Сверху