0

我有 2 个表,一个“品牌”存储所有品牌名称,“品牌类别”存储所有品牌名称及其相应类别。我有一个多选框,可以在页面加载时加载“品牌”表中的所有项目,但我需要突出显示用户之前在“品牌类别”表中已经提交的项目以及其他品牌留下,以便用户知道要在“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”表中输入的品牌,其余品牌不显示。我也需要展示它们。

4

2 回答 2

0

else您忘了在while循环中提及条件。这是代码

<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>
于 2013-10-29T07:37:36.700 回答
0

如果我正确理解了您的查询,您正在尝试提取所有品牌并使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>
于 2013-10-29T07:48:27.107 回答