php - 从数据库中填充选择字段

标签 php database loops select echo

我正在尝试使用 PHP 填充 select 字段。问题是我无法弄清楚如何显示它们,因为我得到的值与数据库中的值匹配显示了两次,因为我将其回显为选中状态,然后循环显示所有结果。我怎样才能只显示与字段值匹配的 selected ,然后显示所有与所选值不匹配的值?

表格类别

cat_id  cat_name
1       soccer
2       baseball
3       basketball

表格文章

art_id art_cat_id
1      1

PHP/HTML

<select name="category">
<?php
    $sql = "SELECT cat_id cat_name, art_id, art_cat_id 
            FROM categories LEFT JOIN articles
            ON categories.cat_id = articles.art_cat_id
            WHERE art_id = 1";
    $result = query($sql);

    if($result===false) {
        echo("Query Fail");
    }
    else {
        ?>
        <option value="<?php echo $data['art_cat_id'] ?>" selected="selected"><?php echo $data['cat_name'] ?></option>
        <?php
        while( $data = mysqli_fetch_array($result)) {

        ?>     
        <option value="<?php echo $data['cat_id'] ?>"><?php echo $data['cat_name'] ?></option>
        <?php
        }
    }
    ?>
</select>

返回什么

<select name="category">
    <option value="1" selected="selected">soccer</option>
    <option value="1">soccer</option>
    <option value="2">baseball</option>
    <option value="3">basketball</option>
</select>

我在找什么

<select name="category">
    <option value="1" selected="selected">soccer</option>
    <option value="2">baseball</option>
    <option value="3">basketball</option>
</select>

最佳答案

如果值与第一个匹配,则跳过该行。

一个片段:

    ?>
    <option value="<?php echo $data['art_cat_id'] ?>" selected="selected"><?php echo $data['cat_name'] ?></option>
    <?php
    while( $data = mysqli_fetch_array($result)) {
        if ($data['art_cat_id'] == $data['cat_id']) continue;
    ?>     
    <option value="<?php echo $data['cat_id'] ?>"><?php echo $data['cat_name'] ?></option>
    <?php
    }

关于php - 从数据库中填充选择字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15733454/

相关文章:

android - SQlite 数据库 VS Room 持久化库

r - 来自方差分析输出的 x 和 y 变量的 p 值矩阵

php - 有 26 个外键的 MySQL 表的替代方案吗

php - laravel: Route::group - 如何理解::here 的语法。因为Route类中没有静态函数 `group`

database - laravel 5.4 多对多关系

java - 如何从 Java & H2 DB 连接到 H2 数据库

java - 出现意外的死循环

Ruby while 循环在满足条件时不会停止

php - 为什么 Apache 支持 PHP、Perl、Python... 但不支持 Servlet?

javascript - 从 jQuery mobile 1.4.2 传递值。使用 php 到另一个页面