我认为这是一项微不足道的任务,但我还没弄清楚。我有一个mysql表,它有多行和多列。每一列都应该用作下拉菜单的一个类别。然而,其中一些列比其他列短。我目前已经这样实现了:
<select name="exhaust">
<option value="<? echo "$exhaust"; ?>" selected><? echo "$exhaust"; ?></option>
<?
//connect to mysql
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = "SELECT * FROM tuning_parts";
$query = mysql_query($query);
//ausgabe
while($db = mysql_fetch_array($query)){
$phrase = "<option value='"".$db['exhaust']."'">".$db['exhaust']."</option>";
echo($phrase);
};
?>
</select>
然而,这有时会给我很长的下拉列表,其中有很多空值。我试过使用array_filter(),但总是得到空结果。
我想过滤掉空字段,这样下拉菜单只显示实际值。
更好的方法是不要选择那些为空的记录,而是从数据库中提取它们,并在代码级别进行预防。
将查询更改为
$query = "SELECT * FROM tuning_parts
WHERE exhaust IS NOT NULL
AND exhaust !='' ";
好吧,你可以做:
//inside your while loop
if(!empty($db['exhaust'])) {
$phrase = "<option value='"".$db['exhaust']."'">".$db['exhaust']."</option>";
}
只需简单地使用'if'条件
if($db['exhaust'] != ''){
$phrase = "<option value='"".$db['exhaust']."'">".$db['exhaust']."</option>";
}