Добрый вечер. Озадачился такой задачей. Вместо того, что бы под каждый тип не делать кнопку, хочу попробовать заливать все с одной кнопки, но что бы потом при загрузке они на сайте уже у меня закидывались в разные папки. То есть. картинки в одну, фильмы в другую, лог файлы в третью и т.д. Народ, подскажите пожалуйста как это сделать?? Заранее благодарен за любую подсказку, помощь.
$result=$main->db->sql_query("SELECT u.*, t.*, (SELECT COUNT(id) FROM `".PLAYERS."` as p WHERE `status_time`>NOW() - INTERVAL 5 MINUTE AND p.tid=t.id) as count FROM `".USERS."` as u JOIN `".TEAMS."` as t ON (u.uid=t.id_cl) ORDER BY id");
SELECT p.field0, p.field1, u.field3, u.field4.*FROM`".PLAYERS."`AS p
LEFTJOIN`".USERS."`AS u ON(p.uid=u.uid)
- синтаксис таков. При этом среди field0, field1, .. не должно встречаться полей с одинаковыми названиями, то есть поле можно выбрать только из одной таблицы - либо же, если необходимо из обеих, требуется определить разные альясы.
Вроде как уже что-то проясняется)) Сейчас попробую))) (Добавление)
Перечислением полей вместо указания * при выборке, очевидно. При этом в списке указать поле uid только из одной таблицы, той, из которой нужно по логике Вашего запроса.
так он у меня в обоих таблицах, я так поле назвал, что бы не путаться))) что же теперь делать?))) правда, туплю и не пойму что и как)))
LEFT JOIN (SELECT p.*, u.* FROM `".PLAYERS."` AS p
LEFT JOIN `".USERS."` AS u ON (p.uid=u.uid)
Вот Ваш подзапрос. в таблицах с альясами p и u присутствует одинаковое поле по названию (а именно uid) потому СУБД не может определить, из какой таблицы возвращать это поле в основной запрос. Подставить я ничего не могу, так как я, как и СУБД, не могу догадываться, из какой таблицы Вам это поле нужно. На первый взгляд подойдёт из любой.
так, ну это я понял. а как же мне тогда выводить то значение?)) извините меня, но что-то реально туплю(((
ridvik
Потому что не указано, из какой таблицы брать поле. При выборке всех полей (через знак *) в подзапросе неясно, какую из них возвращать во внешний запрос, поскольку указанное в ошибке поле присутствует более чем в 1-й таблице. Укажите явно.
не совсем вас понял(( не могли бы сами подставить и потом мне указать?
LEFTJOIN(SELECT p.*, u.*FROM`".PLAYERS."`AS p LEFTJOIN`".USERS."`AS u ON(p.uid=u.uid)WHERE(`status_time`>NOW()- INTERVAL 5 MINUTE)AND`tid`=12) pl N pl.tid = p.tid
примерно так, но это просто пример, только я полей не знаю и какой признак того что клиент онлан
спасибо, днем попробую, а признак то что он онлайн это вот status_time`>NOW() - INTERVAL 5 MINUTE
Добрый день участникам портала. Столкнулся с проблемой, как решить не знаю( Нужно вывысти таблицу данных из бд, но вот в чем проблема:
Данные беру вот таким запросом:
$result=$main->db->sql_query("SELECT p.*, u.uid, u.user_name FROM ".TEAMS." as p JOIN ".USERS." as u ON (p.id_cl=u.uid)");
С ним все гуд, но проблема заключается в том, что в последнем столбце надо вывести число людей, которые онлайн в данный момент.
Если смотреть по отдельности, а не списком, то я это делаю вот таким запросом:
$result=$main->db->sql_query("SELECT p.*, u.* FROM `".PLAYERS."` as p LEFT JOIN `".USERS."` as u ON (p.uid=u.uid) WHERE (`status_time`>NOW() - INTERVAL 5 MINUTE) AND `tid`={$_GET['id']}");
Так вот теперь вроде как сам вопрос, как объединить эти два запроса, что бы выводились все записи и количество онлайн каждой???
Всем доброе утро. Собственно нужна помощь по выборке из бд)) Нужно в таблице бд отыскать строки, где разница со временем больше 5 минут, либо меньше. Смысл вот в чем: пользователь каждые 5 мин обновляет время допустим в таблице test в поле status_time. И нужно вот из этой таблицы посчитать. у скольких пользователей дата, занесенная в бд, была занесена не больше 5 минут назад. Типо сессия такая небольшая. на уровне пхп я еще вроде могу сделать, но как я понял тут нужно на уровне sql запроса. Помогите пожалуйста. Вот что я имею в данный момент: