- 1
- 2
- 3
<?php
$q=mysql_num_rows(mysql_query("SELECT * FROM `users`"));
>
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+166
<?php
$q=mysql_num_rows(mysql_query("SELECT * FROM `users`"));
>
Печально, но так поступают 85% кодеров..
QarezZ 01.10.2011 16:34 # 0
1_and_0 01.10.2011 16:35 # 0
Lure Of Chaos 01.10.2011 16:54 # 0
faiwer 01.10.2011 17:12 # 0
ой да ладно...какие там 85... ну может 15%
Lure Of Chaos 01.10.2011 19:37 # +2
swing1991 04.10.2011 10:21 # 0
Lure Of Chaos 04.10.2011 11:36 # +1
bugmenot 04.10.2011 17:53 # +1
wildscliss 04.10.2011 15:54 # 0
Сам на подобные грабли наступал, когда начинал MySQL изучать... Потом, конечно, дошло - "SELECT COUNT(*)..."
Uhehesh 01.10.2011 17:25 # 0
(или имеется ввиду, что вместо * нужно юзать id? или прикол в другом?)
upd: COUNT(*) - правильно? o shi~
istem 01.10.2011 17:30 # 0
Uhehesh 01.10.2011 17:32 # 0
Я понимаю, что правильно называть это $num_rows или $num или $count, но...
faiwer 01.10.2011 17:36 # −1
В данном случае надо было:
SELECT COUNT(*) FROM `users`
istem 01.10.2011 17:57 # 0
Наряду с *, в данной строчке используется "получение" конечного результата минуя все остальные (включая возможные исключения) пользуясь лояльностью php к тем кто так пишет. Такую хрень - хреново отлаживать.
--
faiwer 01.10.2011 17:59 # +3
istem 01.10.2011 18:03 # −3
bugmenot 01.10.2011 18:24 # +2
istem 01.10.2011 18:27 # −2
Lure Of Chaos 01.10.2011 19:43 # +2
Uhehesh 01.10.2011 18:29 # +2
Lure Of Chaos 01.10.2011 19:42 # +3
CPPGovno 01.10.2011 19:43 # 0
он кошка с автоматом
Lure Of Chaos 01.10.2011 19:47 # 0
istem 01.10.2011 20:39 # +2
Uhehesh 01.10.2011 18:35 # 0
Uhehesh 01.10.2011 21:45 # −1
swing1991 04.10.2011 10:26 # −4
1.Нет лимита запросу,в случае 100000 записей вернёт их все.
2.Делается SELECT сразу всех полей(SELECT 'id','date') должно быть.
3.Нет проверки на ошибку(if ($mysql_query){}).
4.Если добавить переменную в sql запрос,то sql инъекция будет проходить на ура (mysql_escape_string()).
3.14159265 04.10.2011 19:17 # 0
притом, что в разных БД еще есть возможность взять размер напрямую из системных таблиц и это еще быстрей чем count(*).
bugmenot 04.10.2011 22:48 # 0
Frostbite 05.10.2011 12:54 # −1
Мануал намекает, что так и надо писать. Так что, похоже в данном случае код вполне правильный.
shmaltorhbooks 05.10.2011 13:44 # 0
Frostbite 05.10.2011 14:39 # −1
shmaltorhbooks 05.10.2011 15:36 # 0
Frostbite 05.10.2011 15:58 # 0
ohlol 06.10.2011 11:34 # 0
guest 07.10.2011 19:15 # 0