Advanced search  

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Pages: [1]   Go Down

Author Topic: уменьшить запрос на показ последних фотоk  (Read 7766 times)

0 Members and 1 Guest are viewing this topic.

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

Смысле в следующем.
Главная страница галереи загружается моментально, но стоит щелкнуть по одной из фотографий (которые отоборажаются как lastup) то процесс показа этой самой фотографии занимает около 10 секунд. Причину нашел.
Дело в том, что при выборе фотографии он строит и обрабатывает порядок всех (свыше 16000) фотографий моей галереи.
Каким кодом можно попроваить это? ну к примеру последнии 500 фотографий
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

Нужно найти в коде где строятся запросы к БД и указать LIMIT
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

Нужно найти в коде где строятся запросы к БД и указать LIMIT

вот оригинал
Code: [Select]
case 'lastup': // Latest (most recent) uploads

        if ($cat && $CURRENT_CAT_NAME) {
            $album_name = cpg_fetch_icon('last_uploads', 2) . $lang_meta_album_names['lastup'] . ' - ' . $CURRENT_CAT_NAME;
        } else {
            $album_name = cpg_fetch_icon('last_uploads', 2) . $lang_meta_album_names['lastup'];
        }

        $query = "SELECT COUNT(*)
                FROM {$CONFIG['TABLE_PICTURES']} AS r
                INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS a ON a.aid = r.aid
                $RESTRICTEDWHERE
                AND approved = 'YES'";

        $result = cpg_db_query($query);

        list($count) = mysql_fetch_row($result);
        mysql_free_result($result);

        list($ASC, $DESC, $limit, $flipped) = get_pic_data_ordering($count, $limit1, $limit2);

        $select_columns = implode(', ', $select_column_list);

        $query = "SELECT $select_columns
                FROM {$CONFIG['TABLE_PICTURES']} AS r
                INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS a ON a.aid = r.aid
                $RESTRICTEDWHERE
                AND approved = 'YES'
                ORDER BY r.pid $DESC $limit";

        $result = cpg_db_query($query);
        $rowset = cpg_db_fetch_rowset($result);
        mysql_free_result($result);

        if ($flipped) {
            $rowset = array_reverse($rowset);
        }
       
        if ($set_caption) {
            build_caption($rowset, array('ctime'));
        }

        $rowset = CPGPluginAPI::filter('thumb_caption_lastup', $rowset);

        return $rowset;
        break;
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

а что находится в $RESTRICTEDWHERE?
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

а что находится в $RESTRICTEDWHERE?
если я заменю на
Code: [Select]
ORDER BY r.pid $DESC limit 0,100";то он отображает посление 100 фотографий, не учитывая что мне нужно всего 2 ряда (lastup,2)
К тому же, при щелчке по любой из фотографий(последние добавления), он мне показывает полноразмерное изображение первой из последних добавленных
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

я потому и спросил что в этой переменной, может там как раз были какие-то условия выборки
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

я потому и спросил что в этой переменной, может там как раз были какие-то условия выборки
нет. эта переменная пустая. выше я привел оригинальный код из funtions.inc.php
на данный момент я свою проблему не решил. все в оригинале. подскажите куда копать? где установить лимит на выборку последних, к примеру, 300 фотографий?
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

Вы правильно привели код изменения, нужно смотреть там и дальше в CPGPluginAPI::filter('thumb_caption_lastup', $rowset)
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

Вы правильно привели код изменения, нужно смотреть там и дальше в CPGPluginAPI::filter('thumb_caption_lastup', $rowset)
прошу прощения, но что в нем нужно изменить? :)
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

Я не знаю, нужно смотреть код и распутывать клубок )
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

Я не знаю, нужно смотреть код и распутывать клубок )
колдовство над кодом никаких результатов мне не дало. помогите?
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

чего только не пытался изменить. все хожу "вокруг да около", приведите пожалуйста готовый кусочек кода
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

неужели ни у кого не было подобной проблемы?
Logged

Plazik

  • Coppermine regular visitor
  • **
  • Offline Offline
  • Gender: Male
  • Posts: 99
  • Rihanna fan
    • Фотографии Рианны - Rihanna Photos

неужели ни у кого не было подобной проблемы?
Отключи показ последних фоток на главной и сделай вместо этого показ последних измененных альбомов.
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page

В том коде, который Вы приводили, над строкой:
Code: [Select]
$query = "SELECT COUNT(*)добавьте строку:
Code: [Select]
print "---->>> [$RESTRICTEDWHERE] <<<----<br />";
И покажите, что Вам будет выводится на той странице, где происходит долгий вывод.
Logged
Pages: [1]   Go Up
 

Page created in 0.025 seconds with 20 queries.