2010-11-11 28 views
0
<input type="checkbox" name="average" value="average" <? if (get_option('average') == 'average'){ echo 'checked="checked"';} ?>>Average 

    <input type="checkbox" name="petite" value="petite" <? if (get_option('petite') == 'petite'){ echo 'checked="checked"';} ?>>Petite 



    if (get_option('average') == 'average'): // choose category 
    $average = "AND build = '".get_option('average')."'"; 
    endif; 

    if (get_option('petite') == 'petite'): // choose category 
    $petite = "OR build = '".get_option('petite')."'"; 
    endif; 


    $qry = mysql_query("SELECT performerid,pic0 FROM ".$table." WHERE **$average $petite** ORDER BY RAND() LIMIT 20"); 

我怎樣才能使這段代碼工作?我需要SQL查詢工作,如果選擇$平均,是$平均和$嬌小被選中,或者只是$ petite被選中?PHP,sql有趣的查詢選項

TY!

回答

1

你可以使用這樣的事情:

$selectedCategories = array(); 
foreach(array('petite', 'average', 'athletic') as $category) 
{ 
    if (get_option($category) == $category) 
    { 
    $selectedCategories[] = $category; 
    } 
} 

$qry = mysql_query(
"SELECT performerid,pic0 
    FROM ".$table." 
    WHERE build IN('" . implode("', '", $selectedCategories) . "') 
ORDER BY RAND() LIMIT 20;"); 

注:如果您選擇不分類這是不行的。

+0

有趣!) – webmasters 2010-11-11 17:57:33

+0

是不是?類別一次只出現在一個地方,因此這是靈活的。 – greg0ire 2010-11-11 18:01:08

+0

讓我試試吧,看看它是否有效,thx男人;) – webmasters 2010-11-11 18:08:18

0

你需要使用php函數isset();

if(isset($_POST)){ //checks if post is set 
    if(isset($)POST['average']) && !isset($_POST['petite'])){ 
     //do staff only average is set 
    } 
    elseif(isset($_POST['petite']) && !isset($_POST['average'])){ 
     //do staff only petite is set 
    } 
    elseif(isset($_POST['average'] && isset($_POST['average']))){ 
     //do staff both is set 
    } 

} 
+0

爲什麼使用isset而不是「get_option('average')=='average'」。它是一個wordpress平臺。選項平均值是在一個名爲functions.php的文件中定義的。 PS。我有平均,嬌小,大,運動,高於平均水平...太多組合的... :( – webmasters 2010-11-11 17:52:10