- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Надо сокращать количество запросов. Уверен, что это можно реализовать относительно легко
Итак, первый успех. Обратил внимание, что при построении иерархии меню (их два, одно правда кешируется) цикл с запросом в БД пробегает даже если ИД раздела =1, то есть верхний уровень... Сменил начальный счетчик в функции с 0 на 1, и в if $1>0 => $i>1. Одним махом убрал 200 запросов, то есть на 15% полегчало...
может быть даже не поломав сайт.
вот теперь надо наблюдать... Вроде голову поломал, echo понавставлял - не должно поломать... Надеюсь.
Возможно как то используется при выводе полученных данных, а возможно и просто так добавили, не подумав.
функция 5 строк, $myrow["id"] нет там... Походу неподумав... Я на самом деле за программистом ужа находил подобное, как поумнел, но каждый раз сильно сомневаюсь - может это я дурак на самом деле... Но пока - нет.
он нужен только в IN чтобы понять к какому id из запрошенных какой parent_id соответствует
Ты не прав. Выше я написал, почему.
Ты не прав. Выше я написал, почему.
Там вот и все:
Это уже мной подкрученная. Была
каждый раз сильно сомневаюсь - может это я дурак на самом деле
И это правильно. Бывает, что сам чего-то не учитываешь. Поэтому в сложных случаях приходится всё тщательно перепроверять, прежде чем исправлять чужой "косяк".
Там вот и все
Но у нас разговор был про общий случай. В данном конкретном случае - может быть, и лишнее.
function level($id) {
$level = 1;
while ($id > 1) {
$result = mysql_query("SELECT id,id_parent FROM `content` WHERE id='$id'");
$myrow = mysql_fetch_array($result);
$id_parent = $myrow["id_parent"];
$level = $level + 1;
$id = $id_parent;
}
return $level;
}
OMG что это??? Вот прям стока памяти, что нужно хранить дикое количество переменных? В Питоне бы за такое руки оторвали! Почему не
как минимум
Там вот и все:
Во-первых, у вас тут SQL Injection.
Во-вторых, level лучше добавить в таблицу content чтоб он выбирался одним запросом, а не в цикле
как минимум
Разница в одну. Да и все равно я прибил свою правку. Она поломала местами сайт, ибо блин я не учел, что сразу под 0 у меня не только блин 1, а еще пяток. Запихивать их в array это костылькостыльный, так как на разных сайтах (ЦМС обслуживает 7 доменов) чуть рознятся... Чешу репу...
Зато походу оптимизировал еще несколько сотен запросов - обнаружил что рекламные блоки опрашиваются всегда все возможные (32 шт), тогда как показываются все 4-5. Сделал лишний запрос на проверку количества не скрытых - получил минус 300 запросов.
Во-первых, у вас тут SQL Injection.
Хде и как?
Во-вторых, level лучше добавить в таблицу content чтоб он выбирался одним запросом, а не в цикле
Это я сразу понял! Но тут не обойтись тремя строчками кода, дофига всего переделывать...
Хде и как?
Наверное из-за того, что нет обработки в функции переменной $id, а сразу вставляются данные. Возможно где-то ДО этого идёт проверка, что id точно является числом. Если нет, то лучше в функции привести переменную к формату abs(intval($id))
Возможно где-то ДО этого идёт проверка, что id точно является числом
А, это... Да, у меня все строго. Только числа, причем нельзя даже + вставить, а то плодить яндекс стал дубли, так как изначально ЦМС проглатывала.