question
Пользователь-
Публикаций
275 -
Зарегистрирован
-
Посещение
Весь контент question
-
Проблема была лишь в том, что я передавал массив. Переписал функцию update_stock public function update_stock($id, $stock) { if($stock == 'символ_бесконечности' || $stock == '') $stock = null; $query = $this->db->placehold("UPDATE __variants SET `stock`=? , `stockchanged` = NOW() WHERE id=? LIMIT 1", $stock, intval($id)); $this->db->query($query); return $id; } Теперь работает нормально.
-
Добавлю. Наиболее правильное, с моей точки зрения, решение - отправлять запрос в БД. Однако, функция placeholder не позволит отправить в БД запрос вида UPDATE s_variants SET stock=КОЛИЧЕСТВО, datechanged=NOW() WHERE id=КАТЕГОРИЯ AND (SELECT stock FROM s_variants WHERE id=КАТЕГОРИЯ LIMIT 1) < КОЛИЧЕСТВО LIMIT 1 Конкретно 4 строчка. Не позволит подставить КОЛИЧЕСТВО
-
Ну чем плоха идея хранить склад не в отдельной программе с синхронизацией туда-сюда, а в базе данных моего сайта и управлять облегчённой админкой? В первом случае - это занесение всех товаров в базу с разбивкой по категориям, во втором - база уже есть. Возможно, эта тема заинтересует других участников и они пойдут по моему же пути.
-
Переделал. Теперь сохраняет только при нажатии на enter (код 13). У меня ещё вопрос. Подскажите, как при увеличении количества товара отправлять один запрос, а при уменьшении - второй. Надо сравнивать введённое в input число в админке с variant->stock или же вставить SELECT в UPDATE и написать условие типа UPDATE s_variants SET stock=99, datechanged=NOW() WHERE id=123 AND (SELECT stock FROM s_variants WHERE id=12345 LIMIT 1) < 99 LIMIT 1 ? Суть такая: надо записывать в одно поле дату при уменьшении товара на складе и во второе поле при увеличении кол-ва товаров на складе.
-
В Симпле запросы к БД формируются функцией placehold в виде $query = $this->db->placehold("UPDATE __variants SET ?% WHERE id=? LIMIT 1", $variant, intval($id)); Если $variant содержит название поля и число, запрос выполняется правильный UPDATE s_variants SET stock=10000 WHERE id=999 LIMIT 1 Но если содержит название поля и null вместо числа, в бд передаётся 'null' в кавычках, которое затем превращается в 0 (ноль) в базе. Не пойму, как передать значение без кавычек.
-
Заказ из админки для оффлайн-продажи.
question опубликовал тема в Общие вопросы по функционалу и дизайну
В админке Симплы есть замечательная функция - заказы. Легко добавить товар, доставку, легко применить скидку, ну а дальше-то что? 1. Как вывести на печать в виде накладной? 2. Как округлить сумму до сотен? 3. Есть группы покупателей, допустим, "клиент", "постоянный клиент (-5%)", "оптовик (-15%)" - как в админ-заказе это использовать? -
И ещё вопрос. Функции update_variants передаются параметры, которые она подставляет в sql запрос. Сама функция public function update_variant($id, $variant) { $query = $this->db->placehold("UPDATE __variants SET ?% WHERE id=? LIMIT 1", $variant, intval($id)); $this->db->query($query); return $id; } Svariant, как я понял, массив. Как эту функцию переписать, чтобы при нахождении в $variant только stock добавлять в SQL фразу , `stockchanged` = NOW() ?