多个类别的网址

时间:2013-04-11 11:24:11

标签: php categories

我需要一些帮助。我在这里有一个类别选择的脚本。当我在网址www.domain.com/zone.php?cat=Apple上使用时,它可以在Apple类别中显示项目

但是我想在网址中有两个或更多类别,例如www.domain.com/zone.php?cat=Apple&cat=Orange&cat=Pear,以便显示Apple,Orange和Pear中的所有项目。我如何从下面这样做。

if (isset($_GET['cat']) && strtolower($_GET['cat'])!=='all'){
    $cat = DB::LimitQuery('category', array(
'condition' =>'name="'.$_GET['cat'].'"',
));

    $condition = array( 
            "(city_id = '0' OR find_in_set({$city['id']},city_id))",
            'product' => $cat[0]['id'],
            "begin_time <  {$daytime}",
            );
} else {
    $condition = array( 
            "(city_id = '0' OR find_in_set({$city['id']},city_id))",
            "begin_time <  {$daytime}",
            );      
}

3 个答案:

答案 0 :(得分:0)

如果你想要更多的类别,你必须设置更多的GET参数才能抓住它,你做错了

$_GET['cat1']
$_GET['cat2']
$_GET['cat3']

但是如果您想在单个参数中使用很多类别,请使用任何正确编码在网址中的字符来划分类别,如,,这样就可以这样了

www.domain.com/zone.php?cat=Apple&,Orange,Pear

在PHP端

explode()

$cats = explode($_GET['cat'],',');

答案 1 :(得分:0)

你需要这样做:

www.domain.com/zone.php?cat[]=Apple&cat[]=Orange&cat[]=Pear

它将在$_GET['cat']中创建数组

在php make:

$condition = array( 
            "(city_id = '0' OR find_in_set({$city['id']},city_id))",
            'product IN ( '.implode(','.$_POST['cat'].')',
            "begin_time <  {$daytime}",
            );

但是 您需要检查这些值以避免注入。

答案 2 :(得分:0)

的index.php

<?php if(isset($_GET['arr']))
    {
        $id = $_GET['arr'];
        var_dump($id);
    }
    ?>


<?php $array =array('apple','orange','banana');
    $array = http_build_query(array('arr'=>$array));
    var_dump($array);
?>     

 <a href="index.php?<?php echo $array;?>">click</a>

我希望这会对你有帮助!