Php 仅从会话中获取阿曲布他,而不是阿曲布他id

Php 仅从会话中获取阿曲布他,而不是阿曲布他id,php,session,Php,Session,我在一个网站上做了一些过滤器,我必须按会话从一些数据中过滤阿曲布他。我举的例子是通过过滤心房肌和id,我不知道如何选择心房肌和他的心房肌的所有id。阿曲布他和我尝试做的代码如下: if (isset($_REQUEST['Filtru']) && strpos($_REQUEST['Filtru'], 'atr') === 0) { if (isset($_REQUEST['AtributID']) && (int) $_REQUEST['Atribu

我在一个网站上做了一些过滤器,我必须按会话从一些数据中过滤阿曲布他。我举的例子是通过过滤心房肌和id,我不知道如何选择心房肌和他的心房肌的所有id。阿曲布他和我尝试做的代码如下:

  if (isset($_REQUEST['Filtru']) && strpos($_REQUEST['Filtru'], 'atr') === 0) {
    if (isset($_REQUEST['AtributID']) && (int) $_REQUEST['AtributID'] > 0) {               
                    $_SESSION['Catalog']['Filtre']['Atribute']['AtributID'] = $_REQUEST['AtributID'];
                    $_SESSION['Catalog']['Filtre']['Atribute']['Filtru'] = $_REQUEST['Filtru'];
                    $_SESSION['offset'] = 0;
                }
    else {
                    unset($_SESSION['Catalog']['Filtre']['Atribute'][$_REQUEST['Filtru']][-1 * (int) $_REQUEST['AtributID']]);
                }
}
 $fstr = '';

        if(isset($_SESSION['Catalog']['Filtre']['Atribute']['AtributID']) && isset($_SESSION['Catalog']['Filtre']['Atribute']['Filtru']))       
        $fstr .= ' '.$_SESSION['Catalog']['Filtre']['Atribute']['Filtru'].' in ('.$_SESSION['Catalog']['Filtre']['Atribute']['AtributID'].')';
我就是这样尝试的:

if (isset($_REQUEST['Filtru']) && strpos($_REQUEST['Filtru'], 'atr') === 0) {

            if (isset($_REQUEST['AtributID']) && (int) $_REQUEST['AtributID'] > 0) {               
                $_SESSION['Catalog']['Filtre']['Atribute']['AtributID'] = $_REQUEST['AtributID'];
                $_SESSION['Catalog']['Filtre']['Atribute']['Filtru'] = $_REQUEST['Filtru'];
                $_SESSION['offset'] = 0;
            }

            else if (!isset($_REQUEST['AtributID']) || (int) $_REQUEST['AtributID'] <= 0)  {
                if (isset($_REQUEST['Atribute']) && (int) $_REQUEST['Atribute'] > 0) {
                    $_SESSION['Catalog']['Filtre']['Atribute'] = $_REQUEST['Atribute'];
                    $_SESSION['Catalog']['Filtre']['Filtru'] = $_REQUEST['Filtru'];
                    $_SESSION['offset'] = 0;    
                }

                else {
                    unset($_SESSION['Catalog']['Filtre']['Atribute'][$_REQUEST['Filtru']]);
                }
            }
            else {
                unset($_SESSION['Catalog']['Filtre']['Atribute'][$_REQUEST['Filtru']][-1 * (int) $_REQUEST['AtributID']]);
            }
        }
我的是这样的,但它给了我内爆函数的错误,它说Atribut是未定义的:

if (isset($_SESSION['Catalog']['Filtre']['Atribute']) && count($_SESSION['Catalog']['Filtre']['Atribute'])) {

           foreach ($_SESSION['Catalog']['Filtre']['Atribute'] as $k => $v) {
               if (count($v)) {

                  if (strlen($fstr))
                       $fstr .= ' AND ';

                  $vals = '(' . implode(',', $v) . ')';
                   $fstr .= " $k in $vals ";                    

                }
            }

有人能帮我吗?

我不确定你想做什么,但在我看来,内爆应该以数组作为第二个参数;)

试试这个

if (isset($_SESSION['Catalog']['Filtre']['Atribute']) && count($_SESSION['Catalog']['Filtre']['Atribute'])) {
if (count($_SESSION['Catalog']['Filtre']['Atribute'])) {

              if (strlen($fstr))
                   $fstr .= ' AND ';

              $vals = '(' . implode(',', $_SESSION['Catalog']['Filtre']['Atribute']) . ')';

}
通过这种方式,您将传递到内爆$_会话['Catalog']['filter']['Atribute']中包含的Atribute数组。你不需要使用foreach