PHP从数据库填充下拉菜单值
我是一个试图从数据库中输出下拉菜单值的初学者。我已经从数据库自动生成了值,但我遇到的问题是我希望显示所选的值。 理想情况下,我尝试更新一个主题,我希望在HTML页面中显示每个项目都可以更新的数据。我需要的是能够选择被选中的主题的“位置” 这是我的密码:PHP从数据库填充下拉菜单值,php,mysql,forms,Php,Mysql,Forms,我是一个试图从数据库中输出下拉菜单值的初学者。我已经从数据库自动生成了值,但我遇到的问题是我希望显示所选的值。 理想情况下,我尝试更新一个主题,我希望在HTML页面中显示每个项目都可以更新的数据。我需要的是能够选择被选中的主题的“位置” 这是我的密码: <p>Position: <select name="position"> <?php $sel_s
<p>Position:
<select name="position">
<?php
$sel_subject = get_all_subjects();
$subject_count = mysql_num_rows($sel_subject);
//$subject_count+1 because we are adding a subject
for($count=1; $count <= $subject_count+1; $count++) {
echo "<option value=\"{$count}\"";
if($sel_subject['position'] == $count) {
echo " selected='selected'";
}
echo ">{$count}</option>";
}
?>
</select>
您似乎依赖于$count作为某种保持静态的内部ID;考虑到它只是一个单调推进的整数,这似乎是一个危险的命题。但是,如果您对此感到满意,那么只需将最后一条echo语句中的值更改为subject name,而不是$count。相反,我鼓励您使用对数据库有意义的内容-例如,有些人创建一个名为subject_id的自动增量字段,并将其设置为key off;其他人喜欢使用s
我通常也会建议使用foreach循环而不是for循环,因为它会简化代码,您不必担心维护计数器或创建围栏柱错误等。下面是一个简单的示例-我只是猜测一下您可以使用的实际数据,希望你能推断出你实际拥有的东西
<p>Position:
<select name="position">
<?php
$sel_subject = get_all_subjects();
foreach($sel_subject as $subject_num => $subject) {
echo '<option value="', $subject_num, '"';
if ($subject['selected']) {
echo 'selected="selected"';
}
echo '>', $subject['subject_name'], '</option>';
}
他不止两行,只是没有标记为代码,所以HTML被删除了;在循环之前,看到你得到的值了吗?是的,我看到了。它确实显示了数字。唯一不起作用的是选择的主题位置。谢谢你们的帮助!我刚刚意识到我犯了一个错误。我有一个函数get_all_subject,它包含一个数组,数组中有一个名为$sel_subject的变量。在使用新变量命名函数时,比如$subject\u set捕获函数get\u all\u subjects,而不是使用不同的名称,我仍然将其命名为$sel\u subject,它已经包含在函数中。这就是它不起作用的原因。谢谢。真正的问题是表单是从数据库自动生成的,在数据库中它显示主题的位置,如1、2、3、4、5。在这种情况下,我所需要的只是能够选择所选对象的位置。例如,如果选择位置2,则要显示的位置的值应为2。