我有2个表,一个'品牌'存储所有品牌名称,'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 :(得分:0)
你忘了在循环中提到else
条件。这是代码
<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>
答案 1 :(得分: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>