Форум → Программирование → PHP для идиотов → Говнокод или как писать не стоит
Говнокод или как писать не стоит
Страницы: ← Следующая страница →
-
-
-
6 февраля 2010 г. 14:25, спустя 41 секунду
Ну я может неправильно выразился. Юмор можно и на говнокод.ру почитать.
Тут даже больше не юмор, а что то типа как нельзя делать для новичков. -
6 февраля 2010 г. 14:28, спустя 3 минуты 8 секунд
юмор от новичков
Ну я может неправильно выразился. Юмор можно и на говнокод.ру почитать.
Тут даже больше не юмор, а что то типа как нельзя делать для новичков.
новичкам вообще ничего нельзя позволять делать (с) дудСапожник без сапог -
6 февраля 2010 г. 14:30, спустя 2 минуты 24 секунды
Однажды я одному человеку рассказал про try catch
Он сказал, что это круто и заменил в своем коде все конструкцииif (…) echo 'Ошибка';
наtry
{
if (…) throw new Exception('');
}
catch(Exception $e)
{
echo 'Ошибка';
}
История реальная. Этот человек даже запостил несколько сообщений на пыху. Кто конкретно, палить не буду … -
6 февраля 2010 г. 15:03, спустя 32 минуты 26 секунд
AlexB, ебанаСпустя 86 сек.я в одном месте хитро выебнулся, хотелось нормальной обработки исключений, а не ебаного trigger_error ..
сделал чтото такое
ob_start();
func();
$error = ob_get_clean();
if($error)
throw new Exception($error);
и дальше работал ахуенно обрадовавшись :)Сапожник без сапог -
6 февраля 2010 г. 16:38, спустя 1 час 34 минуты 48 секунд
phpdude,
ты писал, что конструкции типа<?php
foreach ($a as $b)
{
mysql_query("SELECT `name` FROM `users` WHERE `id` = ".intval($b)).";";
}
?>
- говно.
А как сделать правильно? У меня пару вариантов есть
1)<?php
$c = $mysql_query("SELECT `name` FROM `users`;"
//Потом обработаем запрос с помощью while и запишем его массив $d
foreach ($a as $b)
{
//теперь у нас есть два массива. Большой и малый.Обработаем.
}
?>
Говно. Имхо. Ибо если записей миллион, а взять надо две-три, то это пиздец тупость.
2)<?php
foreach ($a as $b)
{
//Тут сделаем переменную $where, значение которой будет id=1 or id=8 or id=15 и тд…
}
$c = mysql_query("SELECT `name` FROM `users` WHERE ".$where.";";
?>
Он по моему лучше, чем остальные.
А может я что то не знаю? -
-
6 февраля 2010 г. 16:56, спустя 12 минут 50 секунд
krasun, Соглашусь пожалуй. Был бы рад небольшому комментарию по этому поводу) -
6 февраля 2010 г. 17:12, спустя 15 минут 55 секунд
Хочу, сказать, что все, что делаете в циклах, это все делается одним запросом. К примеру, и не надо считывать 1,000,000 записей, достаточно "Select * From … LIMIT 10", ограничится limit`ом и вы получите 10 записей. Или те же проверки, их все можно сделать в запросе. -
6 февраля 2010 г. 17:17, спустя 4 минуты 43 секунды
вы все ебанулись,учите матчасть. один пример краше другого//Тут сделаем переменную $where, значение которой будет id=1 or id=8 or id=15 и тд…
этот вариант даже хуже первого по cpu use, ибо серверу придется сравнивать ебанутся сколько условий, а в первом варианте хоть и много запросов, но они все проще этого в сотни раз.//теперь у нас есть два массива. Большой и малый.Обработаем.
ебать, а если записей миллион?
для поулчения кучи значений по ID используется конструкцияSELECT * FROM `users` WHERE `id` IN (1,2,3,4,5,6,7,8,9,10)
этот вариант использует все плюсы мускуля, и не создает форичей. если id - primary key то такая выборка хоть из десятков миллионов будет за доли милисекунд выполняться. гонял такие запросы на табличке в гигабайт и 5мллн записейСапожник без сапог -
6 февраля 2010 г. 17:20, спустя 3 минуты
krasun, немного не понял. Грубо говоря.
Есть таблица. В ней миллион записей.
Есть массив. В ем записаны 7 айдишников. 1, 10, 100, 1000, 10000, 100000, 1000000.
Мне нужно выбрать из из таблицы записи с этими айди.
Лимит не катит вроде.
А проверки в запросе это
?SELECT * FROM users WHERE id=1 or id=10 or … or id=1000000
Спустя 71 сек.phpdude, блять. Точно. Причем я юзал этот ин, но забыл про него. Спасибо. -
6 февраля 2010 г. 17:24, спустя 3 минуты 51 секунду
SELECT * FROM users WHERE id IN(1, 10, 100, ..)Спустя 74 сек.
$ids = array(1, 100, 1000, 10000);
$in = implode(',', $ids);
$sql = "SELECT * FROM `users` WHERE `users`.`id` IN({$in})";
// далее обрабатывайСпустя 98 сек.phpdude, нихуя понять не могу, как ты успел написать, я только писал не куда не отходил, отправил, тут уже два сообщения, пиздец -
6 февраля 2010 г. 17:34, спустя 9 минут 40 секунд
phpdude, нихуя понять не могу, как ты успел написать, я только писал не куда не отходил, отправил, тут уже два сообщения, пиздец
я в свое время пыхе уделял по 150 сообщений в день. со мной не поспоришь ;)Спустя 89 сек.kichSman, это чо за кусок говнокода?$block_date_ex=explode(".",trim($block_date[1]));
$r_block_date=mktime(0, 0, 0, $block_date_ex[1], $block_date_ex[0], $block_date_ex[2]);
$date=date('Y-m-d',$r_block_date);Сапожник без сапог
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!