Но этот перебор остановится, когда делить ни на что не останется.
А решето Эратосфена подразумевается использовать для получения N простых чисел? Нам же все равно сначала надо проинициализировать массив-решето числами в кличестве N (или N-1, не помню).
Хотя, конечно, инициализация решета менее затратна, чем иф с делением, но большинство раз, я думаю, этот цикл будет заканчиваться числа так до 53. Но с большими простыми множителями будет конечно медленноват
возможность добавлять индексы и менять структуру таблиц innodb без полного копирования таблицы и сопутствующей блокировки на запись
много чего полезного заявлено по производительности
Отличненько.
А подбирать правильный план для запросов типа SELECT xxx FROM tbl1 WHERE indexedField IN(SELECT value FROM tbl2 WHERE someCondition), где someCondition не ссылается на поля внешнего запроса - научился?
В смысле что такие запросы при выполнении другие СУБД выболняют как join, а не как exists.
(Добавление)
Но можно разложить и исходное число, и 24 таким способом, а потом, действительно брать по очереди множители исходного числа, если такой же множитель есть и у 24, то отложить его в кучку и убрать из рассмотрения из 24 (только учесть, что и у 24, и у самого исходного числа может быть по несколько одинаковых множителей). Получившаяся последовательность будет состоять из минимальных множителей, которые дадут 24.
Теперь можно циклом, перебрав половину этих множителей получать два числа
div24 и 24/div24 (div24 - это перемноженный на все предыдущие множитель из полученных на предыдущем этапе), найти сумму и сравнить ее с минимальной
А вот не совсем дошло до меня, что именно она делает. Подскажите, в самой базе, данные останутся без изменений, как и в случае неиспользования этой функции?
Она, например, экранирует символы-ограничители строки. Если в столбец stolb нужно вставить значение o'henry и в запросе образуется кусок типа stolb = 'o'henry', то будет синтаксическая ошибка. Если написано stolb = 'o\'henry', то все будет хорошо. Ну и разумеется, не экранируя строки можно добиться более интересных вещей, чем синтаксические ошибки: если речь о вставке, то вставить такую запись, какую хотите вы, а не какую формирует php скрипт(например, зарегить пользователя со статусом админ, если структуры данных позволяют). При селектах - сделать заведомо выполнимое условие, добавить limit - и получить любую строку таблицы. Вот.
В базу, разумеется, данные попадают как есть. Экранирование не изменяет сами данные, оно их преобразует так, чтобы спецсимволы, которые в них присутсвуют, трактовались как обычные символы и теряли свои спец-способности.
createl пишет:
Если я перекидываю данные из одной БД в другую скриптом
Смотря, каким скриптом. Если sql скриптом типа insert select или create table as select, то не нужно. Если скрипт работает не в самой субд, а является для нее клиентом, то нужно экранировать.
createl пишет:
strip_tags
В общем, избавит, но вырезание тэгов может быть не желательно. Может, я реально хочу написать Вам "<b><b><b><b>". Есть htmlentities.
createl пишет:
также регулярка убирает все что соответствует шаблону <script.../script>
А она учитывает, что после того, как убирается все что соответствует шаблону <script.../script>, то то, что получится, тоже может стать соответствовать шаблону <script.../script> ?)
шаблону <scri<script.../script>pt>realscript/script>
3) берем нужные в экшне параметры из $gp, если брали $gp['id'], unset($gp['id']), и так на каждый забираемый экшном параметр
Ну я не очень представляю, как можно предусмотреть, какие реально у нас "все нужные параемтры", потому что иногда нужных параметров может быть побольше, чем там id или page, и они могут меняться. Это всё-таки где-то должно быть описано?
По поводу 404, мне кажется, это немного жесткая мера. Если ты забудешь о каком-нибудь параметре, то будешь отдавать 404 на вполне нормальную страницу. Но, с другой стороны, 404 быстро себя обнаружит)
Плюс, разные счетчики, яндексдиректы и прочие погут цеплять к урлу свои финтифлюшки, типа utm_source и пр. На них тоже не надо отдавать 404, но они и не должны делать дублей. Поэтому, по-моему, meta url + clean-param - необходимая мера, а как определять список допустимых гет-параметров - отдельное дело.
DeepVarvar, есть такая штука как <meta name="URL" content="http://www.site.ru/realPageUrl?with=required&deferent=parameters..." />
Если на дублях страниц он будет, то писковики поймут, какая страница - оригинал.
Только вот вопрос, как сфомировать этот урл - для этого надо быть в курсе во всех экшнах, какие они могут принимать гет-параемтры и, например, для meta name="URL" генерить урл, в котором все возможные гет параметры слева направо в алфавитном порядке со совими значениями. Но это может превратиться во что-то сильно ужасное.
Можно иметь в контроллерах карту экшнов, какие они параметры принимают, и в init контроллера генерить этот meta name="URL" , но нужно тогда внимательно поддерживать эту карту.
Можно перечисмлисть в robots.txt в clean-param все бестолковые геты, но их приблизительно бесконечное число.
Ну а если вернуться к первоначальному варианту, то его можно изменить до нужного результата, прочитав где-нибудь про префиксный и постфиксный инкремент
Надо смотреть запрос, explain к нему, DDL используемых в нем таблиц(с индексами) или других таблицеобразных объектов и примерный объем данных в таблицах.
http://yandex[dot]ru/yandsearch?text[dot][dot][dot]D0%B5&lr=213 (Добавление)
Выбираете любой алгоритм поиска кр. путей в графе, раскладываете остановки по графам, задаете расстояния между остановками как веса ребер. Далее получаете кратчайший путь (список ребер), и смотрите, каким автобусам принадлежат ребра - вот и с пересадками и без пересадок всё сразу
Выбрав нужную вам айдишку, вы получите для нее значение cool(X). Дальше можете сделать выборку, где cool > X or (cool = X and id > ID) limit 1 и cool < X or (cool = X and id < ID) limit 1.
Если индексы есть, то этот вариант эффективнее
Champion
Вспомните про метки в php - и как они объявляются (привет goto)
Аааа, точно! Блин, это же очевидно. Че-то я стормозил.
Всё началось с того, что я вызывал статический метод класса и забыл одно двоеточие. Произошло обращение к функции, которая после двоеточия. И вот такой неправильный вывод я сделал
Он работает, как будто просто вар дамп (Добавление)
PHP 5.3.10 (cli) (built: Feb 2 2012 20:27:51)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies