2017-08-29 92 views
-2

我有一個名爲列重量在我的表。我需要從該列像取的值,如何找到範圍之內的複選框

當用戶從40重量點擊 - 100,它需要用來顯示所有重量的人在40和100之間

這是我的HTML代碼,

<div class="float-right span35"> 
    <form class="list-wrapper search-form" method="get" action="{{CONFIG_SITE_URL}}/index.php"> 
     <div class="list-header"> 
      Talent Search 
     </div> 
       <h4 style="margin-left: 10px; color: gray;">Weight</h4> 
       <fieldset id="weight"> 
        <input type="checkbox" name="weight" value="1" {{WEIGHT_1}}/>Below 40<br> 
        <input type="checkbox" name="weight" value="2" {{WEIGHT_2}}/>40-70<br> 
        <input type="checkbox" name="weight" value="3" {{WEIGHT_3}}/>70-100<br> 
        <input type="checkbox" name="weight" value="4" {{WEIGHT_4}}/>Above 100<br> 
       </fieldset> 
       <br/> 
       <input style="margin-left: 10px" type="submit" name="submit" value="search"/><br><br> 
       <input type="hidden" name="tab1" value="search"> 
     </form> 
</div> 

這是我的PHP代碼,

if(isset($_GET['submit'])){ 


    $weight = ($_GET['weight'])? $escapeObj->stringEscape($_GET['weight']): NULL; 

    $sql = "SELECT id FROM `".DB_ACCOUNTS."` WHERE `id` IS NOT NULL "; 

    if(is_numeric($weight) && $weight != NULL){ 
     $sql .= "AND `weight` IN (".$weight.")"; 
     $is_weight = true; 
    } 

    $sql .= " ORDER BY `id` ASC"; 

    } 
    if($is_weight){ 
     $themeData['weight_'.$weight] = 'checked'; 
    } 

    $query = $conn->query($sql); 
    if($query->num_rows > 0){ 
      while($fetch = $query->fetch_array(MYSQLI_ASSOC)){ 
       $get[] = $fetch['id']; 
      } 

      $i = 0; 
      $listResults = ''; 

      $themeData['page_title'] = "Advanced Search - ".$lang['search_result_header_label']; 
      foreach($get as $row){ 
       $timelineObj = new \SocialKit\User(); 
       $timelineObj->setId($row); 
       $timeline = $timelineObj->getRows(); 

       $themeData['list_search_id'] = $timeline['id']; 
       $themeData['list_search_url'] = $timeline['url']; 
       $themeData['list_search_username'] = $timeline['username']; 
       $themeData['list_search_name'] = $timeline['name']; 
       $themeData['list_search_thumbnail_url'] = $timeline['thumbnail_url']; 

       $themeData['list_search_button'] = $timelineObj->getFollowButton(); 

       $listResults .= \SocialKit\UI::view('search/list-each'); 
       $i++; 
      } 
      $themeData['list_search_results'] = $listResults; 

    } 

} 

此代碼幾乎是從表中的單件重量工作。但是我需要在代碼中提到的複選框值之間創建一個範圍。我需要更新代碼嗎?

+1

如果您打算添加一個範圍,您需要在查詢中進行更改並添加「where weight> = min && weight <= max」之類的內容 – bdalina

+0

如果您是新手,新的PHP和MySQL我不知道如何清楚地做到這一點。你能幫我找到嗎? @bdalina。 –

+0

什麼價值被傳遞到PHP?這個1,2,3,4?每個都有最小值和最大值1 = 40到100? – bdalina

回答

0

在PHP代碼變化

if(is_numeric($weight) && $weight != NULL){ 
    $sql .= "AND `weight` IN (".$weight.")"; 
    $is_weight = true; 
} 

if(is_numeric($weight) && $weight != NULL){ 
    if($weight==1){ 
     $sql .= "AND weight<40"; 
    } 
    if($weight==2){ 
     $sql .= "AND weight>=40 AND weight <=70"; 
    } 
    if($weight==3){ 
     $sql .= "AND weight>70 AND weight <=100"; 
    } 
    if($weight==4){ 
     $sql .= "AND weight>100"; 
    } 
    $is_weight = true; 
} 

而且,我建議使用無線電而不是複選框與複選框,如果選擇一個以上的權重選擇一個值會迷路。

+0

你的權利他必須使用收音機,併爲所有1,2,3,4添加另一個選項,所有的意思是0 -100以上等。 – bdalina

+0

確定關於代碼 –

+0

_ /?重量=重量+> 70 +和+重量+ <%3D100&submit = search_我的網址變成這樣,但沒有結果正在查看 –

0

試試這個,希望這個作品,所以你不會讓你的代碼大的變化

使用radion按鈕

<input type="radio" name="weight" value="0" {{WEIGHT_1}}/>Below 40<br> 
<input type="radio" name="weight" value="1" {{WEIGHT_2}}/>40-70<br> 
<input type="radio" name="weight" value="2" {{WEIGHT_3}}/>70-100<br> 
<input type="radio" name="weight" value="3" {{WEIGHT_4}}/>Above 100<br> 

您可以在PHP中加一個變量數組

$arrayWeight = ["`weight` >= 0 && `weight` <=40", 
       "`weight` >= 40 && `weight` <=70", 
       "`weight` >=70 && `weight` <=100", 
       "`weight` >= 100"]; 

// $arrayWeight[$weight] = $arrayWeight[1]; 
// $arrayWeight[1] = 'weight' >= 0 && 'weight' <=40 a string 

在這一行add add this

if(is_numeric($weight) && $weight != NULL) 
    { 
     $sql .= "AND ".$arrayWeight[$weight].")"; //sample $arrayWeight[1] = 'weight' >= 0 && 'weight' <=40 

     //" SELECT id FROM `".DB_ACCOUNTS."` WHERE `id` IS NOT NULL AND 'weight' >= 0 && 'weight' <=40 

     $is_weight = true; 
    } 

小心引用

+0

其中i需要把這個$ arrayWeight = [「」,//爲什麼空意味着它將查詢所有無論重量 的「‘重量’> = 0 &&‘重量’<= 40」, 「‘重量’> = 40& '體重'<= 70" , 「 '體重'> = 70& '體重'<= 100」, 「 '體重'> = 100」,]; // $ arrayWeight [$ weight] = $ arrayWeight [1]; // $ arrayWeight [1] =「體重」> = 0 &&「重量」 <= 40的字符串 –

+0

其對於i添加作爲你可以看到有5個選項現在,在html可以指定是否刪除該選項不必說,但在你輸入的值必須從0開始,因爲陣列零 – bdalina

+0

開始我沒有得到任何改變,當我upadated我與URS –