Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите упростить запросы!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Несколько SELECTов
UNTRUSTED
Отправлено: 22 Марта, 2012 - 17:14:55
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




Вот код который можно было бы я думаю упростить, но сам не знаю как:
CODE (htmlphp):
скопировать код в буфер обмена
  1. ### Строение таблицы ###
  2. id-1 | id-2 |
  3. ------------|
  4.   1   |   2   |
  5. ------------|
  6.   1   |  3   |
  7. ------------|
  8.   2   |   4  |
  9. ------------
  10.   1   |  6   |
  11. ------------|
  12.   4  |   7   |
  13. ------------

Допустим таблица у нас выглядит так:
Далее запросы:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $1 = mysql_fetch_row(mysql_query("SELECT COUNT(id2) FROM `table` WHERE `id1` = '$var'")); ##Ну здесь понятно - выбираем из таблицы количество id2 где id1 соответсвует значению переменной
  2. $2 = mysql_fetch_row(mysql_query("SELECT COUNT(id2) FROM `table` WHERE `id1` IN (SELECT `id2` FROM `table` WHERE `id1` = '$var')")); ##Вот здесь мы выбираем количество тех id2, в строке которых id1 равен id2 в строке у $var
  3. $3 = mysql_fetch_row(mysql_query("SELECT COUNT(id1) FROM `table` WHERE `id2` IN (SELECT `id1` FROM `table` WHERE `id2` IN (SELECT `id1` FROM `table` WHERE `id2` = '$var'))")); ##Ну здесь тоже самое, только еще глубже запрос!!
  4. $col = $1[0] + $2[0] + $3[0];

Можно же полюбому как-то проще сделать?
(Добавление)
И вдобавок, поминться мы говорили о выводе переменных, что через '.$.' быстрее чем "",
а если вот к этому примеру отнести вывод этих переменных вот таким образом:
CODE (htmlphp):
скопировать код в буфер обмена
  1. echo $col.'('.$1[0].'|'.$2[0].'|'.$3[0].')'; ## Муторно но если быстрее, то фиг с ним что муторно
  2. echo"$col ( $1[0] | $2[0] | $3[0] )"; ##Там быстрее работает, а здесь быстрее пишеться :)
 
 Top
EuGen Администратор
Отправлено: 22 Марта, 2012 - 17:26:21
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Для чего такие построения? Какова исходная задача?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
UNTRUSTED
Отправлено: 22 Марта, 2012 - 17:41:45
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




Вот она впринципе и есть задачаУлыбка
Найти количество первых, вторых, третьих, и их сумму!
(Добавление)
Чтобы было понятней.. Типо как в пирамиде система, или типа рефералы первого, второго и.т.д. уровней. То есть здесь примерно такая же задача стоит!
 
 Top
DelphinPRO
Отправлено: 22 Марта, 2012 - 18:08:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Запросы к БД и рекурсия - http://forum.php.su/topic.php?fo...9&topic=4774


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
UNTRUSTED
Отправлено: 22 Марта, 2012 - 18:14:47
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




Спасибо! Сейчас посмотрю разберусь!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB