В конце запроса стоит: Код (Text): (ts.session = '".$id_session."' OR ts.user = '".$user_ids."') но выполняет он только первое условие, а второе игнорирует Весь запрос: Код (Text): $user_exist = mysql_query(" SELECT tp.onoff, tp.id, tp.model_name, tp.price_normal, tp.image_main, tp.parent_brand, tb.brand_name, tb.bid, tc.synonym, ts.product, ts.session, ts.user, ts.type, ts.id_cart, ts.cart, ts.qty FROM product_info AS tp LEFT JOIN brands AS tb ON (tp.parent_brand = tb.bid) LEFT JOIN categories AS tc ON (tp.parent_categorie = tc.id) LEFT JOIN shopping_cart AS ts ON (tp.id = ts.product) WHERE tp.onoff = 1 AND ts.cart = 1 AND (ts.session = '".$id_session."' OR ts.user = '".$user_ids."')") or die("Error! ".mysql_error());
OR - это или. Если дело не в этом, то скорей всего в том, что user_ids - это массив, и надо сделать вот так: Код (Text): "... OR `ts`.`user` IN (" . implode(',', $user_ids) . ")"
у тебя написано "то либо это" если хочешь чтобы обязательно выполнялись два условия, надо написать "то и это"
Я как раз хочу чтобы выполнялось "то либо это". Проблема в том, что если "то" не верно "это" не проверяется и игнорируется
Я специально ввел в базу два товара, но чтобы $id_session получились разные, а $user_ids одинаковые. Вот и получилось, что одно из условий игнорируется. Что самое забавное, дальше идет вот этот код Код (Text): $user_list = mysql_fetch_array ($user_exist); $summ_list = mysql_query("SELECT SUM(".$user_list['price_normal']."*qty) FROM shopping_cart WHERE cart = '1' AND (session = '".$id_session."' OR user = ".$user_ids.")"); Но тут все нормально.
вместо Код (Text): $user_exist = mysql_query(" SELECT tp.onoff, tp.id, tp.model_name, tp.price_normal, tp.image_main, tp.parent_brand, tb.brand_name, tb.bid, tc.synonym, ts.product, ts.session, ts.user, ts.type, ts.id_cart, ts.cart, ts.qty FROM product_info AS tp LEFT JOIN brands AS tb ON (tp.parent_brand = tb.bid) LEFT JOIN categories AS tc ON (tp.parent_categorie = tc.id) LEFT JOIN shopping_cart AS ts ON (tp.id = ts.product) WHERE tp.onoff = 1 AND ts.cart = 1 AND (ts.session = '".$id_session."' OR ts.user = '".$user_ids."')") or die("Error! ".mysql_error()); напиши это и посмотри как выглядит запрос Код (Text): $query = " SELECT tp.onoff, tp.id, tp.model_name, tp.price_normal, tp.image_main, tp.parent_brand, tb.brand_name, tb.bid, tc.synonym, ts.product, ts.session, ts.user, ts.type, ts.id_cart, ts.cart, ts.qty FROM product_info AS tp LEFT JOIN brands AS tb ON (tp.parent_brand = tb.bid) LEFT JOIN categories AS tc ON (tp.parent_categorie = tc.id) LEFT JOIN shopping_cart AS ts ON (tp.id = ts.product) WHERE tp.onoff = 1 AND ts.cart = 1 AND (ts.session = '".$id_session."' OR ts.user = '".$user_ids."')"; echo "<pre>$query</pre>"; $user_exist = mysql_query($query) or die("Error! ".mysql_error());
А есть ли при tp.onoff = 1 и ts.cart = 1 такие записи, которые содержат в ts.user то же, что и в $user_ids?