在下拉列表中显示预选值

时间:2016-05-27 11:59:43

标签: php html mysql sql drop-down-menu

我有2个表类别和产品

类别

id     name 
1   categoryone 
2   categorytwo

产品

id  categoryid  product
1     1            P1

我有一个显示类别的下拉列表,但是如果产品表中存在任何类别,那么它应该从下拉列表中显示为预选值,其他类别应该正常显示

<?
$category="SELECT * FROM `category` ";
$resultcategory = mysqli_query($con, $category);
if(mysqli_num_rows($resultcategory)>0)
    {
        while($rowcategory = mysqli_fetch_assoc($resultcategory))
            {?>

                <option value="<? echo $rowcategory['id']; ?>"><? echo $rowcategory['name']; ?></option>
            <?}
    }
?><?

$category="SELECT * FROM `category` ";
$resultcategory = mysqli_query($con, $category);
if(mysqli_num_rows($resultcategory)>0)
    {
        while($rowcategory = mysqli_fetch_assoc($resultcategory))
            {?>

                <option value="<? echo $rowcategory['id']; ?>"><? echo $rowcategory['name']; ?></option>
            <?}
    }
?>   

任何人都可以说出它是如何完成的

1 个答案:

答案 0 :(得分:0)

首先,您需要将选择字符串重建为以下内容:

$category = "SELECT category.*, product.categoryid".
 "FROM category, product".
    "WHERE category.id= product.categoryid";

然后添加一个PHP代码检查以查看它们是否匹配

 while($rowcategory = mysqli_fetch_assoc($resultcategory))
            {
                <option value="<?php echo $rowcategory['id']?>" <?php if ($rowcategory['id'] == $rowcategory['categoryid']): ?> selected="selected" <?php endif; ?>></option>
            }

我的代码中可能有一百万个语法错误,但想法应该很明确。