Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Совмещение таблиц
 
 автор: sl1p   (02.09.2008 в 02:42)   письмо автору
 
 

не практиковал ещё, в поиске не знаю что писать:)

есть таблица users и online
и есть известный ник $nick

нужно одним запросом вставить в online столбец id который принадлежит $user из таблицы users.
другими словами ник переделать в айди:)

заранее сенк)

  Ответить  
 
 автор: sl1p   (02.09.2008 в 04:16)   письмо автору
 
   для: 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

  Ответить  
 
 автор: ronin80   (02.09.2008 в 09:03)   письмо автору
 
   для: sl1p   (02.09.2008 в 04:16)
 

а что находится в таблице online, какая информация?

тут получается что если в таблицах online и config нет связанных с трок с таблицей users то и информация по юэеру не будет отображаться, в результат запроса не попадёт

необходимо в таком случае использовать LEFT JOIN

  Ответить  
 
 автор: sl1p   (02.09.2008 в 10:34)   письмо автору
 
   для: 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 )

  Ответить  
 
 автор: ronin80   (02.09.2008 в 10:37)   письмо автору
 
   для: sl1p   (02.09.2008 в 10:34)
 

>берёт только одного,первого юзера...
>тоесть должно работать так:

так проблема есть или нет?

  Ответить  
 
 автор: sl1p   (02.09.2008 в 10:43)   письмо автору
 
   для: 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 вызывается стопицот раз..

  Ответить  
 
 автор: ronin80   (02.09.2008 в 11:04)   письмо автору
 
   для: sl1p   (02.09.2008 в 10:43)
 

>у меня какимто боком получалось так что при выводе первого оно дублировало n количество раз одну и ту же запись пока не закончатся $acolor..

ну это логично, вы же производите соединение таблиц, тогда если юзеру соответствует несколько записей аколор то это будет выглядеть так

юзер1 аколор1
юзер1 аколор2
юзер1 аколор3

>а с такими вот запросами выше это получается не плохая нагрузка..
>$acolor вызывается стопицот раз..

тут надо скрипт смотреть

  Ответить  
 
 автор: sl1p   (02.09.2008 в 13:48)   письмо автору
 
   для: 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);
}
?>

тоесть нужно как то это сходу в первом запросе объединить и чтобы каждый цвет соответствовал записи..

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования