Объеденение запросов, проблема

1. Дмитрий (02.06.2011 / 12:35)
Воообщем пишу запрос
<?
SELECT * FROM
                      `friends`
                     JOIN
					  `users`
					 ON
                      `friends`.`user` = '$user[id]'
					 AND
					  `friends`.`zajavka` = '1'
                     AND
                      `users`.`onl` + '100' > '" . time() . "'
					 AND
					  `users`.`id` != '$user[id]'
					 ORDER BY `users`.`id` DESC {$n->limit}

с целью, выбрать людей из таблици своих друзей, обьеденить с таблицей юзеров, в которой выбрать всех людей которые онлайне. Тобишь вывести таким макаром всех друзей в онлайне. Фича работает немного иначе, если кто-то из друзей в онлайне - выводит всех, нужно соответственно только тех, кто в онлайне. Что же не так?

2. KOZZ (02.06.2011 / 12:36)
ваай, как не читабельно то код пакуешь

3. Дмитрий (02.06.2011 / 12:40)
ну мне так удобнее)

4. Lugaro (02.06.2011 / 12:56)
Часть условия перенеси во where

5. Анатолий (02.06.2011 / 13:07)
Может так?
<?php
$sql="SELECT * FROM  `friends` 
 JOIN  `users` 
 ON  `friends`.`user` = `user`.`id`
WHERE `friends`.`zajavka` = '1'  AND `users`.`onl` + '100' > '" . time() . "'        AND  `users`.`id` <>  '{$user[id]}' 
ORDER BY `users`.`id` DESC {$n->limit};";
?>


6. Дмитрий (02.06.2011 / 13:21)
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

Добавлено через 03:07 сек.
Толик, я думал у меня ON пойдет как WHERE т.е. еще один WHERE ненужен, это ты имел ввиду как dekameron написал чтоль? ЗЫ зачем там <>

7. Валерий (02.06.2011 / 13:27)
структура таблиц бы помогла

8. Дмитрий (02.06.2011 / 13:33)
friends
id|user|who

id - ключ
user - я
who - друг

users
id|onl

id - я
onl - время онлайна

9. Валерий (02.06.2011 / 13:44)
Я в JOINах не особо шарю и сам пишу вот таким синтаксисом.
<?
SELECT users.* 
FROM users,friends
WHERE friends.user='$user_id' AND users.id=friends.who AND (users.onl+100)>UNIX_TIMESTAMP();
?>


10. Дмитрий (02.06.2011 / 13:51)
ну это тоже что ты поставил запятую, что я JOIN принцип один

11. Валерий (02.06.2011 / 13:54)
ну я понимаю что смысл один, но мне так проще почему то.
А вообще у нас запросы несколько разные, даже не учитывая joinов

12. Дмитрий (02.06.2011 / 14:05)
твой вариант возвращает постоянно пустой результат... лан буду че то мудрить

13. Lugaro (02.06.2011 / 14:22)
Пробуй то что написал dekameron и смотри что пишет mysql_error()

14. Анатолий (02.06.2011 / 17:23)
Выведи переменную $sql, скопируй запрос и запусти его через любой интерфейс (phpmyadmin например).

Или же внимательней перечитать мой пост и заметить ошибку в названии таблицы smile

ON `friends`.`user` = `users`.`id`

URL: https://visavi.net/topics/22046