traffs:
Спасибо мне тоже помогло! но теперь напротив товара вот это / NULL
А так попробуйте:
Код PHP:
$sql = "INSERT INTO cms_shop_cart (`session_id`, `item_id`, `var_art_no`, `qty`, `pubdate`, `chars`, `chars_hash`)
VALUES ('{$session_id}', '{$item_id}', '{$var_art_no}', '{$qty}', NOW(), {$chars_info}, '{$chars_hash}')";
а так {$chars_info} вообще ничего не передает! так '{$chars_info}' хоть NULL выводит
Помогите, сбился с ног, никак довести до ума не могу, чтоб и обновлялось количество одинаковых товаров и товар с характеристиками передавался, почему то работает только либо одно либо другое.
Сейчас функция такого вида у меня, товар одинаковый обновляется, но в записях характеристик (массив ничего не передает) выводится /NULL в корзине.
public function addToCart($item_id, $var_art_no='', $qty=1, $chars=false) {
$var_art_no = $var_art_no ? $var_art_no : '';
$exists_id = $this->inDB->get_field('cms_shop_cart', "session_id='{$session_id}' AND item_id='{$item_id}' AND var_art_no='{$var_art_no}' AND chars_hash='{$chars_hash}'", 'id');
if (!$exists_id){
if ($chars){
foreach($chars as $id=>$value){ $chars_ids[] = $id; }
$chars_ids = implode(',', $chars_ids);
$sql = "SELECT id, title FROM cms_shop_chars WHERE id IN ({$chars_ids})";
$result = $this->inDB->query($sql);
if ($this->inDB->num_rows($result)){
while($c = $this->inDB->fetch_assoc($result)){
$chars_info[$c['id']] = $c['title'].': '.$chars[$c['id']];
}
$chars_info = $this->inDB->escape_string(implode(', ', $chars_info)); }
}
$chars_info = $chars_info ? "'{$chars_info}'" : 'NULL';
$sql = "INSERT INTO cms_shop_cart (`session_id`, `item_id`, `var_art_no`, `qty`, `pubdate`, `chars`, `chars_hash`)
VALUES ('{$session_id}', '{$item_id}', '{$var_art_no}', '{$qty}', NOW(), {$chars_info}, '{$chars_hash}')";
} else {
$sql = "UPDATE cms_shop_cart SET qty = qty + {$qty} WHERE id = {$exists_id} LIMIT 1";
}
$this->inDB->query($sql);
return true;
}