PHP根据行值类别id选择下拉列表

时间:2014-10-14 16:10:55

标签: php mysql

我有一个零件编辑器,几乎可以编辑零件描述,它们所在的类别和标题。

我有一个下拉列表,从名为类别的表格中获取数据库中的类别,它包含 id 列和 cat_name

我还有一个部分类别,其列 id part_name part_desc part_cat 即可。 part_cat 是它所在的类别,具有数值。

当表类别 ID与表格部分 part_cat

匹配时,我会尝试选择下拉选项的选择器

我目前正在使用它。

<?php
//GET PART INFORMATION
$id = $_GET['id'];
$result = mysql_query("SELECT * FROM part WHERE id='$id' LIMIT 1");
$row = mysql_fetch_assoc($result);

//GET CATEGORY INFORMATION
$sql_cat = "SELECT * FROM category";
$result_cat = mysql_query($sql_cat);
echo '<option disabled="disabled">-- Select A Category --</option>';

while ($row_cat = mysql_fetch_assoc($result_cat))
{
    //SELECT THE DROPDOWN OPTION THAT MATCHES CAT_ID AND PART_CAT
    if ($row_cat['id'] == $row['part_cat']) { 
        $selected = 'selected="selected"';  
    }
    echo '<option '.$selected.' value="' . $row_cat['id'] . '">' . 
          $row_cat['cat_name'] . '</option>';
}

?>

我做错了吗?

根本没有选择它们,但是当我将 == 更改为!= 时,它会选择所有这些。

1 个答案:

答案 0 :(得分:3)

要停止选择所有这些代码,请更改此段代码,以便$selected不记得上次设置的内容。

if ($row_cat['id'] == $row['part_cat']) { 
    $selected = 'selected="selected"';  
}

$selected = ($row_cat['id'] == $row['part_cat']) ? 'selected="selected"' : '';