- 1
- 2
- 3
- 4
- 5
- 6
- 7
$res = mysql_query("SELECT * FROM `users`");
while ($arr = mysql_fetch_assoc($res))
{
$res1 = mysql_query("SELECT * FROM `cabinet_users` WHERE `nick`='$arr[user]'");
$arr1 = mysql_fetch_assoc($res1);
...
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+54
$res = mysql_query("SELECT * FROM `users`");
while ($arr = mysql_fetch_assoc($res))
{
$res1 = mysql_query("SELECT * FROM `cabinet_users` WHERE `nick`='$arr[user]'");
$arr1 = mysql_fetch_assoc($res1);
...
}
JOIN'ы для слабаков.
eth0 10.11.2012 14:07 # +4
bormand 10.11.2012 14:59 # +4
> писал хранимые процедуры
Как-то он не с той стороны начал изучать SQL...
Shame on me, но я до сих пор полный нуб в хранимках, хотя SQL знаю неплохо.
eth0 10.11.2012 16:00 # +1
inkanus-gray 10.11.2012 18:31 # +1
scriptin 10.11.2012 21:05 # +1
inkanus-gray 10.11.2012 22:12 # 0
Да и потом, я же могу в первом цикле кроме сборки массива $ids собирать массив со всеми колонками, чтобы потом склеить его с массивом, полученным из второго цикла.
А в этом примере как такую красоту собрать?
Lure Of Chaos 11.11.2012 01:05 # 0
scriptin 11.11.2012 01:34 # +1
Lure Of Chaos 11.11.2012 01:36 # 0
inkanus-gray 11.11.2012 02:53 # 0
bormand 11.11.2012 07:10 # +1
PascalGovno 11.11.2012 07:17 # 0
Мистер Хэнки 12.11.2012 19:58 # +1
eth0 12.11.2012 20:46 # +2
PascalGovno 11.11.2012 07:18 # +1
bormand 11.11.2012 07:58 # 0
Lure Of Chaos 11.11.2012 10:40 # 0
bormand 11.11.2012 10:46 # −1
eth0 11.11.2012 11:58 # 0
bormand 11.11.2012 12:09 # 0
Lure Of Chaos 11.11.2012 14:38 # 0
до сих пор недолюбливаю sql
gorky 12.11.2012 09:09 # +1
DBdev 12.11.2012 13:17 # +1
Это ведь сайт с говнокодом, да?
bormand 12.11.2012 14:03 # +2
P.S. Но красиво, да ;)
P.P.S. С другой стороны хорошо, что я тогда не смог это написать, а все-таки занялся изучением доков по SQL...
gorky 12.11.2012 09:09 # −2
roman-kashitsyn 12.11.2012 10:45 # +1
> неявный join всё равно присутствует
Неужели теперь действительно нужно писать явно текст зелёным... Даже я разглядел тег sarcasm в комменте @Lure_Of_Chaos, набранный 72 полужирным шрифтом.
Lure Of Chaos 12.11.2012 11:04 # +1
спасибо
bormand 12.11.2012 12:08 # +3
eth0 12.11.2012 18:03 # +4
ZX_Spectrum 14.11.2012 18:13 # +3
bormand 14.11.2012 19:08 # +2
santa_microbe 12.11.2012 04:41 # 0
eth0 12.11.2012 06:23 # +2
inkanus-gray 12.11.2012 07:09 # +3
santa_microbe 12.11.2012 07:17 # 0
$all_ids =implode(',', $ids);
$res = mysql_query("SELECT * FROM `cabinet_users` WHERE `id` IN ($all_ids)");
Может я что-то путаю, надо будет дома проверить
bormand 12.11.2012 07:35 # 0
DBdev 12.11.2012 16:23 # +2
SELECT * FROM table1 WHERE id IN (<ids_list>)
и
SELECT * FROM table1 WHERE id IN (<subquery from table2>)
улавливаете?
В первом случае оптимизатор запросов сделает: WHERE id = <1st value> OR id = <2nd value> OR...
Во втором случае: table1 INNER JOIN table2 ON table1.id = table2.id
Да и вообще, у Вас ошибка на уровне пыха вылетает, а не СУБД.
santa_microbe 12.11.2012 17:37 # 0
Просто inkanus-gray, привел кусок кода и написал "Вы так говорите, как будто джойны нужны:". Я и поделился опытом, про слишком длинный запрос. Там правда данные не из базы брались, а приходил массив id от пользователя, на основе которого формировался запрос.
bormand 12.11.2012 18:54 # 0
Потестил на mysql - 100000 работает, 1000000 падает с ошибкой "превышен максимальный размер пакета" (тот самый max_allowed_packet, который у меня мегабайт). Так что ругается именно СУБД или либа для доступа к ней, но не сам пых.
santa_microbe 13.11.2012 04:31 # 0
santa_microbe 13.11.2012 04:37 # 0
bormand 13.11.2012 05:55 # 0
bormand 12.11.2012 07:31 # +1
Вот на ней можно было бы ставить такие эксперименты, а со сраными 2к любой говнокод справится.