PHP 从数据库填充下拉菜单值

标签 php mysql forms

我是一个初学者,试图从数据库中输出下拉菜单的值。我已经自动从数据库生成值,但我遇到的问题是我想要显示被选择的值。 理想情况下,我正在尝试更新一个主题,我希望数据显示在可以更新每个项目的 HTML 页面中。我需要的是能够选择正在选择的主题的“位置”。

这是我的代码:

<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 语句中的值更改为主题名称而不是 $count。相反,我会鼓励您使用对数据库有意义的东西——例如,有些人创建一个名为 subject_id 的 auto_increment 字段并关闭它;其他人喜欢使用UUID

我通常还建议使用 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>';
    }

关于PHP 从数据库填充下拉菜单值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23593695/

相关文章:

html - 如何使用CSS调整表单输入字段?

java - MySQL/Hibernate SQLQuery 如何将 unsigned int(10) 转换为smallint?

php - mysql-如何使用循环选择id

php - 遍历 MySQL 表中的列

php - 如何将 SQL 查询结果更改为 superfish 下拉菜单?

css - 输入不同颜色星号的占位符?

javascript - react /归约形式 : how to return promise from onSubmit?

php - 如何为 PHP(开源)设置和运行 Tesseract OCR?

php - 使用 PHP、ajax、jQuery 在 Mysql 中动态创建表

php - 如何根据两位数的起始年份计算当前学年?