我正在处理一个表单,该表单包含来自数据库的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>
怎么会这么正确?
答案 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>