Kaavain

Kaavain
Рейтинг
178
Регистрация
28.07.2015
webinfo #:

Эка занесло...

Да. Глупо. Но я только сейчас узнал, что кроме $_REQUEST есть $_GLOBALS

Счас, младший поплавает в бассейне, я до клавы доберусь. Уничтожу еще пару сотен тараканов. 

LEOnidUKG #:

Да, но я могу предположить, что в PHP это сделается быстрее т.к. он заточен на такие задачи. А вот всё это вычислять в MySQL и на постоянную основу, я бы не рекомендовал.

Вижу уже тупость в своем варианте. И потом это функция, она вызывается дохренеллион раз. Решил пихну-ка я в сессию список верхних разделов, их всего-то от трех до шести...

Так, придумал версию 2 с определением уровня каталога... Вернусь - буду испытывать

function level($id) {
        $array_top = mysql_query("SELECT id FROM `content` WHERE id_parent='0'");
        $array_top = mysql_fetch_array($array_top);
        if (in_array($id,$array_top)) {
                $level = 1;
        } else {
                $level = 0;
                while ($id > 0) {
                        $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;
                }
        }
        echo "<script>console.log('Level result: " . $level . "//n');</script>";
        return $level;
}
LEOnidUKG #:
Возможно где-то ДО этого идёт проверка, что id точно является числом

А, это... Да, у меня все строго. Только числа, причем нельзя даже + вставить, а то плодить яндекс стал дубли, так как изначально ЦМС проглатывала.

bobolab #:
Центос 7

Вообще умерла.

Я в итоге поставил  Alma Linux 8 (потому что 9 не поддерживается FastPanel-ью)

Sly32 #:
как минимум

Разница в одну. Да и все равно я прибил свою правку. Она поломала местами сайт, ибо блин я не учел, что сразу под 0 у меня не только блин 1, а еще пяток. Запихивать их в array это костылькостыльный, так как на разных сайтах (ЦМС обслуживает 7 доменов) чуть рознятся... Чешу репу...

Зато походу оптимизировал еще несколько сотен запросов - обнаружил что рекламные блоки опрашиваются всегда все возможные (32 шт), тогда как показываются все 4-5. Сделал лишний запрос на проверку количества не скрытых - получил минус 300 запросов.

Aisamiery #:
Во-первых, у вас тут SQL Injection.

Хде и как?

Aisamiery #:
Во-вторых, level лучше добавить в таблицу content чтоб он выбирался одним запросом, а не в цикле

Это я сразу понял! Но тут не обойтись тремя строчками кода, дофига всего переделывать... 

webinfo #:

Ты не прав. Выше я написал, почему.

Там вот и все:

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;
}

Это уже мной подкрученная. Была

function level($id) {
        $i = 0;
        while ($id > 0) {
                $result = mysql_query("SELECT id,id_parent FROM `content` WHERE id='$id'");
                $myrow = mysql_fetch_array($result);
                $id_parent = $myrow["id_parent"];
                $i = $i+1;
                $id = $id_parent;
                $level = $i;
        }
        return $level;
}
Антоний Казанский #:

Вот вам результат работы этого компонента:


muzslava #:
П.С. Программист говорит, что для мета-тегов мы применяем спец. компонент, который должен выдавать правильные данные для поисковиков. Получается этот компонент работает некорректно или как?

... как дети, право слово... А что вы ожидаете он вам скажет? Правду? Что "да, я профнепригоден, сделал херню, вот ваши деньги назад и наймите другого"? Это не в нашей вселенной, вам в параллельную.

Резюме другого вы нигде не получите: сайт говно, переделывать полностью. И тогда будет счастье. Через боль, но потеря денег - разве это боль? Это расходы.

muzslava #:
Есть ли возможность как-то сделать сейчас так, чтобы Яндекс индексировал все мета-теги?

Конечно. Вам же говорят тут всякие люди - ПЕРЕПИСЫВАТЬ САЙТ. Или - забить и башлять втрое за рекламу.

Не вы первые - не вы последние пали жертвами инфоцыган. "Я вам такой сайт напишу - закачаетесь, все по последней моде и слову техники. Жава, ноде, искусственный интеллект. Деньги на карту шлите." А на практике - фрилансер за 10 000р слабал бы на бесплатном шаблоне WP и это было бы гораздо лучше чем сейчас, по крайней мере - для старта.

Убейте что есть, просто в помойку. И наймите студента - пусть на ВП сделает быстро и дешево.

Вы же зарабатывать на сайте хотите? Ну вот расходы просто возрасли.

Snake800 #:
Надо сокращать количество запросов. Уверен, что это можно реализовать относительно легко

Итак, первый успех. Обратил внимание, что при построении иерархии меню (их два, одно правда кешируется) цикл с запросом в БД пробегает даже если ИД раздела =1, то есть верхний уровень... Сменил начальный счетчик в функции с 0 на 1, и в if $1>0 => $i>1. Одним махом убрал 200 запросов, то есть на 15% полегчало...

Snake800 #:
может быть даже не поломав сайт.

вот теперь надо наблюдать... Вроде голову поломал, echo понавставлял - не должно поломать... Надеюсь.

Sly32 #:
Возможно как то используется при выводе полученных данных, а возможно и просто так добавили, не подумав.

функция 5 строк, $myrow["id"] нет там... Походу неподумав... Я на самом деле за программистом ужа находил подобное, как поумнел, но каждый раз сильно сомневаюсь - может это я дурак на самом деле... Но пока - нет.

Всего: 1296