2016-08-16 52 views
-1

我的列表框就是这样的显示从MySQL列的所有数据由“ALL”字

<select id="brand"> 
<option value="All">All</option> 
<option value="Acer">Acer</option> 
<option value="Alcatel">Alcatel</option> 
</select> 

当我选择“宏”,那么这是很好的作品(也阿尔卡特)。但如何,我可以添加“所有”选项,选择所有品牌show.I写了下面的PHP code.But它不是我works.How可以创建PHP代码为“所有”二字

$dbClass = new Database(); 

$extraQuery = ""; 
$subcategories = json_decode($_POST['subcategories']); 

if (!empty($subcategories)) { 
    for ($i = 0; $i < sizeof($subcategories); $i++) { 
     for ($j = 0; $j < sizeof($subcategories[$i]); $j++) { 
      if ($i == 0 && $j == 0) { 

       $stmt = $dbClass::Connect()->prepare("SELECT * FROM user_posts WHERE brand=:brand"); 
       $stmt->execute(array(":brand" => $subcategories[$i][$j])); 
       if ($stmt->rowCount() > 0) { 
        $first = "brand"; 

        if ($subcategories[$i][$j] === "All") { 
         $stmt = $dbClass::Connect()->prepare("SELECT * FROM user_posts WHERE $first like '%'"); 
         $stmt->execute(); 
         $first = $stmt; 
        } 

        $extraQuery = "WHERE (" . $extraQuery . $first . " = " . "'" . $subcategories[$i][$j] . "'"; 
       } 
      } 
     } 
    } 
} 

$第一意味着有有更多的列我有,想将它们设置“所有”二字

回答

0

您可以设置所有值不了了之:

<select id="brand"> 
    <option value="">All</option> 
    <option value="Acer">Acer</option> 
    <option value="Alcatel">Alcatel</option> 
</select> 

然后你就可以添加一个地方你子句只查询,如果品牌不为空:

$sql = 'SELECT * FROM user_posts'; 
$bind = array(); 

if(!empty($brand)){ 
    $sql .= ' WHERE brand = :brand'; 
    $bind[':brand'] = $brand; 
} 

$stmt = $dbClass::Connect()->prepare($sql); 
$stmt->execute($bind); 

一些调整,将需要满足您的需求

+0

<期权价值=“全部”>没有改变。因为它是从javascript数组中获取的。有2个条件。