Есть вот такой фильтр на mysql
Который сейчас работает так, если поле p.visible_to_all=1 то товар показывается всем, учитывая все созданные группы, обычных покупателей и т.д. А вот если стоит p.group_visible_IDгруппы то товар показывается только определенной группе. Как переделать запрос, что если p.visible_to_all=1 то видно всем, кроме групп которые создаются в запросе. Т.е. если p.group_visible_IDгруппы не равно 1 (этих полей может быть несколько) то они не видят товар, даже если p.visible_to_all=1
/*group_visible*/
if (!$_SESSION['admin'] && $_SESSION['user_group_id']
&& !empty($_SESSION['group_visible_ids'])
&& empty($groups_ids_visible)) {
$groups_ids_visible = explode(',',$_SESSION['group_visible_ids']);
}
$select_groups = '';
foreach($groups_ids_visible as $gid) {
$select_groups .= "p.group_visible_".intval($gid).", ";
}
$group_visible_filter = '';
if (!$_SESSION['admin']) {
$group_visible_filter = 'AND (p.visible_to_all=1';
if ($_SESSION['user_group_id']
&& in_array((int)$_SESSION['user_group_id'], $groups_ids_visible)) {
$group_visible_filter .= $this->db->placehold(' OR p.group_visible_?=1', intval($_SESSION['user_group_id']));
}
$group_visible_filter .= ') ';
}
/*/group_visible*/