2013-04-11 13 views
0

Мне нужна помощь здесь. У меня есть сценарий для выбора категории. Когда я использую URL-адрес www.domain.com/zone.php?cat=Apple, он работает и показывает элементы в категории AppleURL для нескольких категорий

Однако я хотел бы иметь 2 или более категорий в URL-адресе, например www.domain.com/ zone.php? cat = Apple & cat = Orange & cat = Груша, чтобы она отображала все элементы в 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}", 
      );  
} 
+0

Привет всем, у кого есть какие-либо решения? Пожалуйста, помогите ... –

ответ

0

хорошо вы делаете это неправильно, если вы хотите иметь больше категорий, которые вы должны установить более GET параметры, чтобы поймать его

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

, но если вы хотите много категорий в одном параметре, разграничить категории с любым символом, который будет закодирован в URL правильно, как , так будет, как этот

www.domain.com/zone.php?cat=Apple &, апельсин, груша

и explode() его на PHP стороне

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

Прежде всего, нужно ограничивать. 'explode (',', $ _GET ['cat'])' :) – Narek

+0

Могу ли я спросить, как это сделать? жаль, что я не очень опытен с PHP –

0

Вам нужно сделать:

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

Это создаст массив в $_GET['cat'].

И в PHP сделать:

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

НО вы должны проверить, что значения для ИЗБЕЖАТЬ инъекций.

+0

не могу заставить его работать. –

+0

Я не знаю, как выглядит ваш класс DB, поэтому это приблизительное условие. Показывать ошибку mysql после изменения запроса. – Narek

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> 

я надеюсь, что это поможет!