如何从数据库创建选择选项?

时间:2014-03-19 21:50:53

标签: php html sql forms select

我正在处理一个表单,该表单包含来自数据库的2个表的4个不同的select元素。我没有做过这样的事情,我也不知道该怎么做。

我有一张名为"学生"从我需要" name"和"班"还有一张名为" books"从我需要"作家" "标题" ... all是一个select元素,并且都有超过2个选项值。

我尝试过只有一个sql查询和一个select,但它在网站上只显示了一个选项,它在数据库中有大约6个值。

我的代码:

$sql = "SELECT class
        FROM students";
$result = mysql_query($sql);


while ($row = mysql_fetch_assoc($result)) {
    $select_class = "<option value={$row['class']}>{$row['class']}</option>";
}

<select id="class" name="class">
    <?php print $select_class; ?>
</select>

怎么会这么正确?

4 个答案:

答案 0 :(得分:3)

试试这个

$sql = "SELECT class FROM students";
$result = mysql_query($sql);

echo '<select id="class" name="class">';

while ($row = mysql_fetch_assoc($result)) {
    echo "<option value={$row['class']}>{$row['class']}</option>";
}

echo '</select>';

答案 1 :(得分:1)

更改此内容:

$select_class = "<option value={$row['class']}>{$row['class']}</option>";

到此:

$select_class .= "<option value={$row['class']}>{$row['class']}</option>";

可能会解决您的问题。

现在你不断重置$ select_class的值,而不是添加它。 。=赋值应该可以帮助你解决这个问题。

与往常一样,请务必向您推荐任何有用的StackOverflow答案。

答案 2 :(得分:1)

您在每个$select_class循环中覆盖while()。您需要连接$select_class。更改为$select_class .=

$select_class = "";
while ($row = mysql_fetch_assoc($result)) {
    $select_class .= "<option value={$row['class']}>{$row['class']}</option>";
}

答案 3 :(得分:0)

试试这个

        <?php
                        $dbhandle = mysql_connect($hostname, $username, $password) or die("can't connect");
                        $table = "students";
                        $sql = "SELECT * FROM students";
                        $result = mysql_query($sql, $dbhandle);
                        mysql_data_seek($result, 0);
        ?>
        <form>                
        <select class="dropdown" name="dropdown">           
    <?php 
    if(mysql_num_rows($result) > 0){
        while($row = mysql_fetch_array($result)) {
            echo '<option value="' . $row['class'] . '">' . $row['class'] . '</option>';
            }
         }
    ?>
</select>
</form>