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

При выборке отдает только 50 товаров

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

Ребят, подскажите в чем может быть проблема, пишу модуль, необходимо сделать выборку полностью всех товаров, и вродебы все ок, но мне отдает только 50 штук, а их в магазине около 5К :cry:

Вот фрагмент модели в котором происходит выборка:
 

	public function getProducts () {
		$products = array();
		$query = $this->db->query("
			SELECT b.name AS name, p.quantity AS quantity, p.price AS price, p.price_zak AS price_zak, p.product_id AS product_id, c.category_id AS category_id, d.quantity AS discount_quantity, d.price AS discount_price FROM " . DB_PREFIX . "product AS p
  			JOIN " . DB_PREFIX . "product_description AS b
    		ON p.product_id = b.product_id JOIN " . DB_PREFIX . "product_to_category AS c
    		ON p.product_id = c.product_id JOIN " . DB_PREFIX . "product_discount AS d
    		ON p.product_id = d.product_id
		");
		foreach ($query->rows as $result) {
			$products[] = $result;
		}
		return $products;
    }

Запрос по идее должен быть верным и должно отдавать мне все, но на практике только первые 50 (((
Кто нибудь сталкивался с таким?

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


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

это своя модель или в моделе продукта?

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


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

это своя модель или в моделе продукта?

Своя, мне нужно через ajax получить json массив со всеми товарами, все отрабатывает как надо, кроме количества(

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


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

А почему вы используете join, по идеи left? врдле на результат повлияет, но все же

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


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

На дискаунте исполтьзуйте лефт и по идеи будет вам счастье

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


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

А почему вы используете join, по идеи left? врдле на результат повлияет, но все же

SQL это мой ночной кошмар)
Поменял на LEFT JOIN все вроде заработало)))
Спасибо огромное:D

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


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

Удачи :)

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


Ссылка на сообщение
Поделиться на другие сайты
В 04.01.2018 в 16:03, VTstudio сказал:

Удачи :)

Сегодня обнаружил что мне в запросе приходят null вместо значений product_discount

 

    public function getProducts () {
        $query = $this->db->query("
            SELECT
                b.name AS name,
                p.quantity AS quantity,
                p.price AS price,
                p.price_zak AS price_zak,
                p.product_id AS product_id,
                c.category_id AS category_id,
                d.quantity AS discount_quantity,
                d.price AS discount_price
            FROM " . DB_PREFIX . "product AS p
            JOIN " . DB_PREFIX . "product_description AS b
                ON p.product_id = b.product_id
            JOIN " . DB_PREFIX . "product_to_category AS c
                ON p.product_id = c.product_id
            LEFT JOIN " . DB_PREFIX . "product_discount AS d
                ON p.product_id = d.product_id
        ");
        
        return $query->rows;
}
 
 

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


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

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

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

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

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

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

Войти

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

Войти

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

    • От YaroslavFrolov
      Доброго времени суток. Помогите плиз, нужно данные из корзины вставить в письмо заказа. Обработчик не от опенкарт.
    • От TerranXXX
      Необходимо модифицировать CMS ocStore v2.3 (русский OpenCart 2.1) для работы с MS SQL Server 2012+.

      Обязательные требования:
      1. Взаимодействие CMS с БД должно происходить исключительно через хранимые процедуры (доступа к таблицам у CMS не будет)
      2. Часть логики из php нужно перенести в хранимые процедуры (например динамическое формирование запросов)

      В ответе сообщите срок и стоимость данной работы.
    • От Bistore
      Добрый день помогите выбрать добить модуль личных количественных скидок на каждого пользователя отдельно в ограниченном виде!
      Получается
      1) Можно сравнить количество скидок на товар и количество купленных товаров пользователей(только авторизованные будут) сравнивая по айди товара и купленого товара минусовать количество скидок от купленного товара и выводить есть ли скидочный товар или же нет( или какое количество осталось).
       
      2) Я вывел sql  запросом уже в пользователе количество скидочных товаров минус количество купленного товара по айди ----- и теперь нужно по айди сравнить купленный товар и товар связать и по полю kolichestvo которое получилось в пользователе смотреть Kol=>0 ? или меньше и тд  
      Как лучше сделать?
      Как связать купленный товар(этим пользователем)  и товар на сайте?
      В файле который добавил в этот вопрос есть код корзины где осуществил все (jan - это количество скидок на товар) 
      cart.php
    • От AndreyRr
      Генерируется много обращений к MySQL - превышаем лимиты на хостинге, и хостер ругается.
       
      С чем может быть связано, и можете посоветует кто-то толькового программиста кто может решить? (сам магазин небольшой, 300 товаров)
    • От 100napb
      Здравствуйте, уважаемые. Пропустим ту часть, в которой обсуждался бы вопрос откуда у Вас могут появиться всякие няшные смайлики. Скажу лишь, что лепить их направо и налево со всяких гаджетов любит каждый, в том числе, оставляя отзывы у Вас на сайте.
       
      Так вот, задался вопросом, как сохранить и не исказить все эти дорогие эмоции. Потому что ОпернКарт с ними не дружит. Для себя нашел следующие решение:
      Прежде всего, текст со смайлами или без них хранится в БД. Для этого данные должны быть в хипстерской кодировке utf8mb4. И сама БД ее должна поддерживать. Не у всех стоят последние версии Mysql, где все это работает не просто из коробки, а по умолчанию. Что бы перевести таблицу на кодировку с эмодзи выполним ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; где table_name заменяем на нужные таблицы. Можно и всю базу так заальтерить, но я чет очканул. Мне хватило таблиц oc_review и oc_comment (привет Markimax). Обновлять версию мускуля не обязательно. Если только он настолько старый, что о такой кодировке даже не знает. В настройках коннекта к БД опенкарта так же сменим кодировку: файл /system/library/db/mysqli.php,  $this->connection->set_charset("utf8mb4"); Вроде бы все... ах да, возможно, нужно менять параметры кодировки в файлах mpdo.php и mysql.php. Я менял. Может быть придется еще рестартануть службы. Под спойлером результат.  
      Может кому пригодиться.
      Ну и вопрос для сведущих: можно было как-то проще\грамотнее это сделать?
  • Последние посетители   0 пользователей онлайн

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

×

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

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