首页 > 解决方案 > 如何在select php中将从数据库中获取的选项添加到末尾

问题描述

我有一个类别表,其中有不同的类别。我还在类别中添加了其他。当我让类别填充选择时,我希望最后出现另一个选项。我怎样才能做到这一点?

<select name="category" id="category" class="form-control <?php if (isset($errors['category'])) echo 'form-error'; ?>">
    <option value="">Select a category...</option>
    <?php while ($category = mysqli_fetch_assoc($categories)) { ?>
        <option value="<?php echo h($category['id']); ?>" <?php if (isset($_POST['category']) && h($category['id']) === $_POST['category']) echo 'selected'; ?>><?php echo h($category['name']); ?></option>
    <?php } ?>
</select>

标签: phpmysqlwhile-loop

解决方案


如果其他类别的 Id 是固定的,那么您必须在数据库查询中忽略它。

假设该选项的 ID 为 1,我们的查询将是这样的:

select * from categories where Id <> 1

此查询带来除“其他”之外的所有类别。

之后执行以下操作:

<select name="category" id="category" class="form-control <?php if (isset($errors['category'])) echo 'form-error'; ?>">
     <option value="">Select a category...</option>
     <?php while ($category = 
     mysqli_fetch_assoc($categories)) { ?>
    <option value="<?php echo h($category['id']); ?>" <?php 
      if (isset($_POST['category']) && h($category['id']) === 
       $_POST['category']) echo 'selected'; ?>><?php echo 
       h($category['name']); ?></option>
    <?php } ?>
     <option value="1">Other</option>
      </select>

希望能帮助到你


推荐阅读