|
|
|
| не практиковал ещё, в поиске не знаю что писать:)
есть таблица users и online
и есть известный ник $nick
нужно одним запросом вставить в online столбец id который принадлежит $user из таблицы users.
другими словами ник переделать в айди:)
заранее сенк) | |
|
|
|
|
|
|
|
для: sl1p
(02.09.2008 в 02:42)
| | и ещё такое..
SELECT id,nick,txtcolor FROM users,online,config WHERE users.id = online.nick_id and config.nick_id = users.id
берёт только одного,первого юзера...
тоесть должно работать так:
тянем nick_id from online
по этому айди тянем id,nick из users
и потом тянем txtcolor из config где nick_id = users.id | |
|
|
|
|
|
|
|
для: sl1p
(02.09.2008 в 04:16)
| | а что находится в таблице online, какая информация?
тут получается что если в таблицах online и config нет связанных с трок с таблицей users то и информация по юэеру не будет отображаться, в результат запроса не попадёт
необходимо в таком случае использовать LEFT JOIN | |
|
|
|
|
|
|
|
для: ronin80
(02.09.2008 в 09:03)
| | SELECT nick,txtcolor FROM users,online,config WHERE users.id = online.nick_id and config.nick_id = online.nick_id
сделал вот так, вроде работает..
пока что online содержит только users.id ) | |
|
|
|
|
|
|
|
для: sl1p
(02.09.2008 в 10:34)
| | >берёт только одного,первого юзера...
>тоесть должно работать так:
так проблема есть или нет? | |
|
|
|
|
|
|
|
для: sl1p
(02.09.2008 в 10:34)
| | там уже всё в порядке :)
вот такое появилось..
mysql_query("SELECT * FROM (SELECT * FROM chat ORDER BY id DESC LIMIT "._CHAT_ROWS.") as msg ORDER BY msg.id ASC");
$acolor=mysql_result(mysql_query("SELECT txtcolor FROM config WHERE config.nick_id = (SELECT id FROM users WHERE nick = '{$row['author']}')"),0);
нужно аколор присоединить както к первому..
у меня какимто боком получалось так что при выводе первого оно дублировало n количество раз одну и ту же запись пока не закончатся $acolor..
а с такими вот запросами выше это получается не плохая нагрузка..
$acolor вызывается стопицот раз.. | |
|
|
|
|
|
|
|
для: sl1p
(02.09.2008 в 10:43)
| | >у меня какимто боком получалось так что при выводе первого оно дублировало n количество раз одну и ту же запись пока не закончатся $acolor..
ну это логично, вы же производите соединение таблиц, тогда если юзеру соответствует несколько записей аколор то это будет выглядеть так
юзер1 аколор1
юзер1 аколор2
юзер1 аколор3
>а с такими вот запросами выше это получается не плохая нагрузка..
>$acolor вызывается стопицот раз..
тут надо скрипт смотреть | |
|
|
|
|
|
|
|
для: ronin80
(02.09.2008 в 11:04)
| | ну получаецо что так:
<?php
$res = mysql_query("SELECT * FROM (SELECT * FROM chat ORDER BY id DESC LIMIT "._CHAT_ROWS.") as msg ORDER BY msg.id ASC");
while($row=mysql_fetch_array($res))
{
$acolor=mysql_result(mysql_query("SELECT txtcolor FROM config WHERE config.nick_id = (SELECT id FROM users WHERE nick = '{$row['author']}')"),0);
}
?>
|
тоесть нужно как то это сходу в первом запросе объединить и чтобы каждый цвет соответствовал записи.. | |
|
|
|