Перейти к содержанию

Рекомендуемые сообщения

Доброго времени суток!

 

Есть интернет магазин, работает на OcStore 1.5.1. Ко мне обратились с проблемой в дублировании товаров при переходе на следующую страницу в категориях. То есть, зашли в категорию, прокрутили вниз, нажали страницу 2, а на следующей появляются те товары, которые были внизу на первой. Следовательно, те товары, которые должны были появиться вместо этих дубликатов, так и не появляются. В магазине стоит СеоПро. Я решил на тест сервере установить версию OcStore 1.5.5, и перенес базу.Отключил там же СеоПро. В ответ я конечно-же получил кучу ошибок типа Undefined index ean, но сайт запустился. Я зашел в категорию, перехожу на страницу 2 и получаю тот же результат. Но я заметил очень интересную вещь. Если быть на любой из страниц в категории и просто обновлять ее нажатием на F5 ну или просто мышкой, то товары постоянно меняются. Они будто перемешиваются и меняют свои позиции постоянно. В итоге, я установил OcStore 1.5.4.1, сделал перенос базы и увидел еще одни изменения. Теперь, при обновлении страницы, товары стояли на месте как надо, но если перейти на вторую страницу, пару товаров, которые были внизу на первой странице, все же повторялись. А если быть на первой странице и выбрать показ товаров на страницу допустим 25, то некоторые товары просто не показываются, они попадают.Если же показывать 75, то дубликаты появляются на странице 2. В чем может быть дело? Кто нибудь сталкивался с таким? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в тестировщики вам надо а не в разработчики.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
31 минуту назад, nikifalex сказал:

в тестировщики вам надо а не в разработчики.

та да, такой отчет накатал тут... :-D

 

@alvinofori Может причина в том что в базе чтото наворотили? Создайте демо сайт для теста,в нем добавьте 20-30 товаров, и посмотрите есть ли проблема...

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Eldaeron Добавил на демо сайт 30 товаров, такой проблемы нет. Я решил только что сделать иначе. Сделал чистый демо сайт, и просто в таблицы, которые начинаются с product добавил все те товары с прошлой базы. Такое же действие произвел с категориями. Протестировал, все нормально, Но! Как только я выбрал фильтр показ страниц 25, все стало ужасно работать снова. Вернулся на показ 15 товаров и проблема осталась. Обновляешь страницу, товары мешаются, меняют свое положение. 

Изменено пользователем alvinofori

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Забыл сказать, что товары бывают с одинаковыми названиями. Но я не думаю, что это могло повлиять на показ страниц и товаров

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

посмотрите какая сортировка в model/catalog/product.php

и копайте в эту сторону.

Или в скайп пишите

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело в том, что сортировка то наверняка стоит по умолчанию, так как это чистый движок

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 минут назад, nikifalex сказал:

посмотрите какая сортировка в model/catalog/product.php

а не добавили ли случаем RAND в запрос?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да причем здесь ранд

ORDER BY sort_order

И как оно отсортирует про одинаковых sort_oder - никому не известно, и..

Надо смотреть модель
версия-то 1.5.1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем огромное спасибо! Хочу выразить свою отдельную благодарность nikifalex.  Он нашел решение и помог с данной проблемой.

При запросе в базу, для показа товара на странице, query запрашивает ORDER BY p.sort_order

Следовательно

 $sql .= " ORDER BY p.sort_order"; 

Так как у меня или у движка sort_order везде 0, то MySql сортирует товары на рандом (в разброс).

Такая проблема решается таким способом. В файле model/catalog/product.php


перед 
  if (isset($data['start']) || isset($data['limit'])) {

 

добавляем 

$sql .= " , p.product_id";

 

Конечный результат:

 

  $sql .= " , p.product_id";

  if (isset($data['start']) || isset($data['limit'])) {

 

Сохраняем и радуемся. )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И да и нет
 

1. У вас все равно сортировка по  sort_order, затем по product_id

Т.е. - одна лишняя. Или вы убрали ORDER BY sort_order?
 

57 минут назад, chukcha сказал:

ORDER BY sort_order

И как оно отсортирует про одинаковых sort_oder - никому не известно, и..

И в ответ - я сразу задал этот вопрос.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@chukcha нет, я ничего не убирал, а сделал именно так, как написал выше и все заработало)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, chukcha сказал:

1. У вас все равно сортировка по  sort_order, затем по product_id

Т.е. - одна лишняя. Или вы убрали ORDER BY sort_order?

 

Почитайте раздел mysql про сортировку по нескольким полям.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
31 минуту назад, nikifalex сказал:

Почитайте раздел mysql про сортировку по нескольким полям.

:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А давайте я вам задам вопрос
SELECT * FROM `oc_product`
order by `sort_order`

Время?

SELECT * FROM `oc_product`
order by `sort_order`, `product_id`

Время?
Объясните разницу?


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что время? какое время? за сколько минут я отвечу на вопрос?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Время выполнения запроса?
Оно мне надо учитывать ваше время?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

время выполнения запроса зависит от используемых индексов.

а индексы Дэниэль пожалел

70A8b977efDWhz02Yx6oXQvjzZQUr4.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Причем здесь индексы?

Как происходит сортировка?
Сначала по первому, а потом по второму и т.д
Кроме того, сортировка происходит по всему запросу, т.е. сначала запрос WHERE, а потом сортировка.
И конечно же не пузырьковая, а алгоритмы быстрой сортировки, но используется для этого, смотрите explain, file_sorting

А там... сначала сортировка по одному полю, а потом по другому
Так какой запрос будет выполняться быстрее? если все sort_order = 0


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

понял, отстал. не люблю такие дискуссии бесполезные.

причем тут быстрее и пузырьковая сортировка? Хотите супер скорость - пишите на голом html.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Печалько..
Я вам про пузрьковую сортировку, которая не используется про сортировке  SQL сервером.
А про алгоритмы быстрой сортировки, использующих "file_sorting"

А вы мне про два поля в конструкции ODER BY field1, field2

 

Я у вас про время выполнения запроса - а вы про бесполезность дискуссии. И и все туда же -

5 часов назад, nikifalex сказал:

Почитайте раздел mysql про сортировку по нескольким полям.

 

Причем здесь голый html - я вообще не понял. Я где-то об этом сказал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мужчина, поезд уже давно ушел топикстартер уже давно ушел довольный. Пора уже остановить эту дискуссию, уже ничего нельзя повернуть назад, даже если вы еще 10 раз повторите про мифическое время выполнения коня в вакууме запроса.

Еще раз повторю, меня эта тема нисколько не торкает, я не готов это обсуждать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От DSV
      2 500.00 руб
      Скачать/Купить дополнение


      Grand - адаптивный универсальный шаблон
      Grand – многоцелевой, настраиваемый, легкий в использовании и полностью адаптивный шаблон для работы современного интернет магазина. 
      Подходит для любого типа магазина: одежда, обувь, электроника, спорт, ювелирные изделия и многое другое ...
       
      Демонстрация
      Магазин: http://grand.kreativ.pro/
      Админка: http://grand.kreativ.pro/admin/ , доступ: demo / demo
       
      Совместимость
      Работает с Opencart v3.0, Русская сборка OpenCart v3.0
       
      Настройки:
      "Быстрый Старт" (Quick Start).
      Настройка основных цветов в админке
      Добавление CSS в админке
      Добавление JavaScript в админке
      Модуль "Настройка шаблона"
      Модуль "Баннеры"
      Модуль "Новости" (с добавлением сопутствущих товаров)
      Модуль "Категории на главной", с возможностью выбора категорий, выводятся блоками по одной категории
      Модуль "Заказ в 1 клик" (с учетом в админке)
      Модуль "Вывод текста во всплывающем окне"
      Модуль "Дополнительные вкладки в карточке товара"
      Модуль "Нашли дешевле?"
      Модуль "Заказ обратного звонка" (с учетом в админке)
      Модуль "Подписка на новости"
      Модуль "Просмотренные товары"
      Модуль "Рекомендуемые" (добавляете свои товары и меняете заглавие на свое)
      Модуль "Слайдшоу" (с возможностью добавления своего текста и некоторыми настройками)
      Модуль "Сообщить когда появится"
      Модуль "Текстовые баннеры"
      Модуль "Быстрый просмотр товара"
      Вывод Артикула (SKU) в карточке товара
      Добавление карты на странице "Контакты"
      Пользовательские меню в шапке сайта
      Контактная информация в шапке сайта
      Контактная информация в подвале сайта
      Трехуровневое основное и боковое меню
      Основное меню (свои ссылки, бренды, информация, контакты)
      Стикер товара – Акция
      Иконки социальных сетей в шапке сайта
      Иконки социальных сетей в подвале
      Иконки платежных систем в подвале сайта
      Свои иконки социальных сетей в карточке товара и в новостях
      Zoom эффект изображения в карточке товара
      Возможность отключения кнопки "Купить" и "Заказ в один клик" если товара нет в наличии
      Свои ссылки в подвале сайта
      Слайдер дополнительных изображений в карточке товара
      Всплывающее окно при нажатии кнопки купить
      Авторизация во всплывающем окне
      В настройках шаблона можно добавить логотип в подвале сайта
      Хлебные крошки - убраны ссылки страницы на саму себя
      Вкл/Выкл краткого описания товаров
      Вкл/Выкл прокрутки в модулях (рекомендуемые, акции, бестселлер, новинки, блог)
      Вкл/Выкл картинки категорий в списке товаров
      Вкл/Выкл кнопки в "Закладки", в "Сравнение"
      Вкл/Выкл ссылок в подвале сайта
      Вкл/Выкл микроразметки карточки товара
      Вкл/Выкл поворота картинки при наведении курсора
      Вкл/Выкл Условия соглашения (Контакты, Быстрый заказ, Заказ звонка)
       
      Лицензия:
      Шаблон можно использовать только на одном основном домене (тестовые без ограничений).
       
      Техническая поддержка
      Через личные сообщения на данном форуме.
      Поддержка производится только пользователям, числящимся в списке покупателей шаблона.
      Добавил DSV Добавлено 09.12.2018 Категория Платные шаблоны Системные требования Сайт разработчика dsv@kreativ.pro Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore Несовместим OpenCart.Pro, ocShop  
    • От yurggen80
      У меня одного такая проблема: когда на сайте регистрируется Продавец, то админу на почту приходит уведомление и регистрации нового ... ПОКУПАТЕЛЯ!?
      Потом, нужно активировать этого Покупателя, а потом, его же - как Продавца.
      Короче, геморр какой-то. Программист говорит, что так задано.
      Версия ocStore 2.1.0.2.1
    • От Alex010790
      Требуется специалист в Opencart для сотрудничества на постоянной основе, доработки готового сайта. На данный момент актуальная задача исправить ошибки  от Я Маркет по  Yml 
    • От evgeban
      Здравствуйте. Подскажите, можно ли (если можно, то каким образом) реализовать подобное меню? Чтобы была возможность добавлять в меню страницы фильтрации и визуально разделять области. Добавлять не категории/подкатегории, а именно страницы фильтрации. Например, того же ocfilter.

    • От smartcoder
      1 500.00 руб
      Скачать/Купить дополнение


      Составные блоки товаров в статьях / промо-сайтах / партнерских-сайтах
      Возможности модуля:
      1. Установка блоков товаров в статьи или в категории, абсолютно в любое место сайта.
      1.1. Фильтрация блоков по определенным категориям, популярности, новизне.
      2. Создание тематических лэндинг страниц с промо-акциями, к примеру товары к 8 марта, 23 февраля, новый год
      3. Отслеживание трэк-кода с какой площадки был сделан заказ.
      4. Установка блоков товаров на партнерских сайтах с отслеживанием партнерского трэк-кода.
       
       
      Модуль SmartProducts можно использовать как для составления блоков товаров и размещением их абсолютно на любой странице, как и для партнерской программы.
       
       
       
      Демо страницы:
      http://smartproducts.smart-coder.ru
       
      ДЕМО АДМИН для opencart 2.3
      http://opencart23.smart-coder.ru/admin/index.php?route=extension/extension
      Логин: demo
      Пароль: demo
       
       
      Для партнеров:
       
      ДЕМО ФРОНТ для opencart 1.5
      http://opencart15.smart-coder.ru/index.php?route=affiliate/smartproducts
       
      ДЕМО ФРОНТ для opencart 2.3
      http://opencart23.smart-coder.ru/index.php?route=affiliate/smartproducts
       
       
       
      P.S.: Модуль распространяется как есть.
      Перед покупкой ознакомьтесь с описанием модуля и с демо версией, указанной выше.
      Автор в праве отказать в поддержке и в возврате средств, если вы будете устанавливать на видоизмененный opencart (даже если поменяли только папку ./admin)
       
      Добавил smartcoder Добавлено 13.05.2018 Категория Модули Системные требования Сайт разработчика smart-coder.ru Старая цена 2000 Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 2.3
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
      OcShop 1.5.6.4.х  
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.