如何使用 php 中的选择选项从数据库中检索所有数据?
Posted
技术标签:
【中文标题】如何使用 php 中的选择选项从数据库中检索所有数据?【英文标题】:How to retrieve all data from database using select option in php? 【发布时间】:2017-01-20 14:30:02 【问题描述】:所以我从我的database
中得到了这个table
,我想使用select
option
来echo out
。但我遇到了麻烦,因为我有一个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>
【问题讨论】:
我为您提供了一个简单的代码来检索输出,您可以使用此代码并分享实现的想法。 【参考方案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>
【讨论】:
【参考方案2】:您必须获取已从数据库中选择的行数,因为如果计数为零,则会在 while loop
或 foreach
中抛出错误,作为显示动态选择选项的首选用法.
因此,为了显示动态选择选项,我们需要执行以下过程。
<?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的原因是什么,以便将来更正。我单独使用了mysqli.*
语句,这个循环可以正常工作。
原因很简单-您在回答中所做的陈述不正确。 while 语句和不返回行的查询没有任何问题。
我必须更改函数以获取 row_count 而不是我使用过的函数,或者我必须提供关于 @YourCommonSense 的明确解释..
@YourCommonSense。我已经更新了代码和查询以从数据库中获取数据。请分享想法。
请记住,Stack Overflow 既不是论坛也不是免费的辅导门户。如果您有问题,您必须以常规方式提出。以上是关于如何使用 php 中的选择选项从数据库中检索所有数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何在选择jsp中的select标记中的选项时从数据库中检索数据
jquery - 如何使用通过 AJAX 从 MySQL 和 PHP 检索的数据将图像添加到 Select2 下拉列表?