2013-10-29 180 views
0

我有兩個表格'品牌',用於存儲所有品牌名稱和'brand_category',用於存儲所有品牌名稱及其相應類別。我有一個多選框,可以在頁面加載時加載「品牌」表中的所有商品,但我需要突出顯示用戶以前在「brand_category」表中與其他品牌提交的商品留下,以便用戶知道什麼是品牌留在'brand_category'表中輸入。下面是代碼,但它不起作用。請幫助解決這個問題突出顯示多個選擇框中的已選項目

<div class="selectbox"> 
    <label id="brand" class="brand_label">Brand:</lable> 
    <?php 
     echo "<select name='brand' class='cat_brands' multiple>" 
     <option value='0'>None</option>"; 
     $query = mysql_query("SELECT id, name FROM brand"); 
     while($br_query = mysql_fetch_assoc($query)){ 
      $query_select = mysql_query("SELECT * FROM brand_category WHERE brand_id='".$br_query['id']."'"); 
      while($brnd_select = mysql_fetch_assoc($query_select)){ 
       if($brnd_select['brand_id']==$br_query['id']){ 
        echo "<option style='background-color: red' value='".$br_query['id']."'>".$br_query['name']."</option>"; 
       } 
      } 
     } 
    ?> 
</div> 

上面的代碼只顯示了品牌的「brand_category」表都進各品牌都不會顯示。我也需要展示他們。

回答

0

你忘了提及的內部,而loop.Here是代碼

<div class="selectbox"> 
<label id="brand" class="brand_label">Brand:</lable> 
<?php 
    echo "<select name='brand' class='cat_brands' multiple>" 
    <option value='0'>None</option>"; 
    $query = mysql_query("SELECT id, name FROM brand"); 
    while($br_query = mysql_fetch_assoc($query)){ 
     $query_select = mysql_query("SELECT * FROM brand_category WHERE brand_id='".$br_query['id']."'"); 
     while($brnd_select = mysql_fetch_assoc($query_select)){ 
      if($brnd_select['brand_id']==$br_query['id']){ 
       echo "<option style='background-color: red' value='".$br_query['id']."'>".$br_query['name']."</option>"; 
      }else{ 
       echo "<option value='".$br_query['id']."'>".$br_query['name']."</option>"; 
      } 

     } 
    } 
?> 
</div> 
+0

不確定這是否行得通,一旦在第二個while循環中,條件總是與第一個匹配,否則將不會執行,因爲db查詢將始終匹配第一個 – Martin

0

else條件,如果我理解正確的查詢你想拔出所有的品牌,並使在的那些brands_category表顯示爲選中狀態。

的話,最好是使用MySQL的PDO擴展,而不是這種過時的方法

有實現這一點,例如更好的方法通過只有一個表或通過使用Join查詢,無論如何...這應該工作。

<select name='brand' class='cat_brands' multiple> 
<option value='0'>None</option> 
<?php 
$query = mysql_query("SELECT id, name FROM brand"); 

while($br_query = mysql_fetch_assoc($query)) 
{ 
    $query_select = mysql_query("SELECT * FROM brand_category WHERE brand_id='".$br_query['id']."'"); 

    if(mysql_num_rows($query_select) > 0) 
    { 
     while($brnd_select = mysql_fetch_assoc($query_select)) 
     { 
     echo "<option style='background-color: red' value='".$br_query['id']."' selected='selected'>".$br_query['name']."</option>"; 
     } 
    } 
    else 
    { 
     echo "<option style='background-color: yellow' value='".$br_query['id']."'>".$br_query['name']."</option>"; 
    } 
} ?> 
</select> 
相關問題