如何使用php中的select选项从数据库中检索所有数据?

时间:2016-09-13 04:51:05

标签: php mysql select mysqli

因此,我希望table使用database echo outselect option option。但我遇到了麻烦,因为我有 <?php while(mysqli_stmt_fetch($stmt)) { ?> <select class="form-control input-sm"> <option value="ABLE SEAMAN" <?php if($boiler_size == 'ABLE SEAMAN') { echo "selected"; } ?>>ABLE SEAMAN</option> <option value="AKO ITO" <?php if($boiler_size == 'AKO ITO') { echo "selected"; } ?>>AKO ITO</option> <option value="APPRENTICE" <?php if($boiler_size == 'APPRENTICE') { echo "selected"; } ?>>APPRENTICE</option> </select> 用户可以添加更多选项,我不知道如何设置它的值。你可以帮我解决这个问题吗?谢谢!

这是我目前的代码:

splitdir

2 个答案:

答案 0 :(得分:0)

您必须获取从数据库中选择的行的计数,因为如果计数为零,则会在while loopforeach中抛出错误作为显示的首选用法动态选择选项。

因此,为了显示动态选择选项,我们需要执行以下过程。

<?php
$query="SELECT * FROM `TABLENAME` ORDER BY `id` DESC";
$stmt = mysqli_query($conn,$query);
$count = $stmt->num_rows;
?>
<select class="form-control input-sm">
<?php
if($count==0)
{
    echo '<option value="">No Datas have been created Yet</option>';
}
else
{
    while($fetch = $stmt->fetch_assoc())
    {
    ?>
    <option value="<?php echo $fetch['id']; ?>"><?php echo $fetch['name']; ?></option>
    <?php   
    }
}
?>
</select>

使用上面的代码,你可以从数据库中获取n个数量的选项值,你可以很容易地显示它而不会有任何混淆。选项值将重复直到循环结束,仅此后select将结束。因此,如果数据库有n-number,则while循环将重复n次,并在此之后结束。

答案 1 :(得分:-1)

简单写函数:

 function populate_options($table_name, array $fields,  $selected_option = "") {
            $options = "<option></option>";
 $st = $pdo->prepare("SELECT distinct `$fields[0]`, `$fields[1]` FROM $table_name WHERE 1  GROUP BY `$fields[1]` ");
        $st->execute();
        $rowes = $st->fetchAll(PDO::FETCH_ASSOC);
                if ($selected_option=="") {
        foreach ($rowes as $row) {
                        $options.= "<option value = '{$row->$fields[0]}'";
                        $options.= ">" . ucwords( $row->$fields[1] ) . "</option>";
                    }
                } else {
                    foreach ($rowes as $row) {
                        $options.= "<option value = '{$row->$fields[0]}'";
                        $options.= ((($selected_option == $row->$fields[0])) ? ' selected="selected"' : '') . ">" . ucwords($row->$fields[1] ). "</option>";
                    }
                }
            }

            return $options;
        }

并调用您的代码

<select class="form-control input-sm">
       <?php echo $populate_options("tbl_name", array('id', 'name'),$boiler_size); ?> 
</select>