php - 在下拉列表中显示预先选择的值

标签 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>
            <?}
    }
?>   

谁能告诉我如何做到

最佳答案

首先,您需要将选择字符串重建为如下所示:

$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>
            }

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

关于php - 在下拉列表中显示预先选择的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37482980/

相关文章:

php - `date_sub` 无法通过 laravel 在 SQL 中工作

html - 对齐不同的 bootstrap 列

php - 如何从 mysql 检索 html 中断

mysql - 计算两次之间的分钟数并将其除以记录数

php - 隐藏html5/javascript代码的方法

php - for 循环内的 mysql_query 给出与 mysql_fetch_assoc 相关的错误/警告

PHP - 计算字符串的 "physical"(显示)宽度

html - CSS 关键帧动画在应用于同一属性时会中断过渡

html - 使用背景图像编码

mysql - 选择多列但仅按 1 列分组