如何使用数据库中的选定值打印列表?

时间:2011-05-03 17:24:24

标签: php mysql html forms select

我尝试使用数据库中的选定值打印下拉列表。 result3 - 我从数据库中选择与 $ id2 位于同一行的“公司名称”值。我需要选择该值。 result2 - 我选择所有公司名称。

result3 = mysql_query("SELECT company.company_id,customer.company_id, customer.customer_id, company.name 
FROM company INNER JOIN customer ON customer.company_id=company.company_id  WHERE customer_id='$id2'") or die(mysql_error());
$row3 = mysql_fetch_assoc($result3);
$result2 = mysql_query("SELECT company_id, name FROM company") or die(mysql_error());
  if(mysql_num_rows($result2) > 0)
  {
    while($row2 = mysql_fetch_assoc($result2))
    {
    echo'<option selected="'.$row3['name'].'" value="'.$row2['company_id'].'">'.$row2['name'].'</option>';
    }
  }

我的代码存在的问题是每次选中的值都是列表中的最后一个。

我查看了我的源代码,一切都很好。

这是源代码,它是我需要的方式。 (但我的代码将所选值返回为'Facebook' - 列表中的最后一个)

<select name="operation">
<option selected="Google" value="1">Microsoft</option>
<option selected="Google" value="2">IBM</option>
<option selected="Google" value="3">Google</option>
<option selected="Google" value="4">Lexy</option>
<option selected="Google" value="5">Facebook</option>   
</select>

1 个答案:

答案 0 :(得分:4)

所选属性应仅应用于列表中的单个选项。

<option selected="selected">

应该导致选择单个选项。

所以在你的while循环中你需要一个像这样的if语句:

 while($row2 = mysql_fetch_assoc($result2))
 {
     if($row2['name'] == $row3['name']){
          $selected = "selected='selected'";
     }else{
          $selected = "";
     }
     echo'<option ' . $selected . ' value="'.$row2['company_id'].'">'.$row2['name'].'</option>';
}

这样,只会选择您想要选择的值。