创建动态下拉列表

时间:2013-04-30 19:02:24

标签: php mysql

我想创建动态选择列表。例如:我的数据库中有5名学生。我的目标是创建5个选择,并在每个选择数据库中的所有学生。因此,如果用户在数据库中插入第6名学生,该页面应显示6个选择,并在每个选择6名学生的名称中。

我已尝试使用此代码,但它只创建了1个select,包含4个学生(缺少db中的第一个)。

守则:

$con=mysqli_connect("localhost","root","","novi-studomat");
$exe="SELECT * FROM kolegij WHERE id_student='$id_student'";
$i=1;
$execute=mysqli_query($con,$exe);
while($result=mysqli_fetch_array($execute))
{
echo '<select name=student'.$i.'>';
echo '<option value="-1" >Choose student</option> <br/>';
while($res=mysqli_fetch_array($execute))
{
    echo '<option value='.$res["id_student"].'>'.$res["name"].'</option> <br/>';
}
echo '</select>';
$i++;
}

2 个答案:

答案 0 :(得分:2)

$con=mysqli_connect("localhost","root","","novi-studomat");
$exe="SELECT * FROM kolegij WHERE id_student='$id_student'";

$i=1;
$execute=mysqli_query($con,$exe);
$select = '';
for($j = 0; $j < mysqli_num_rows($execute); $j++) {
    $select .= '<select name=student' . $j . '>';
    $select .= '<option value="-1" >Choose student</option> <br/>';
    while($result=mysqli_fetch_array($execute)) {
        $select .= '<option value=' . $res["id_student"].'>' .   $res["name"] . '</option>';
        $i++;
    }
    $select .= '</select>';
}
echo $select;

更新

里面

$select = '<select name=student' . $j . '>';
$select .= '<option value=' . $res["id_student"].'>' .   $res["name"] . 

通过其他

更改此行
$select = '<select name="student' . $j . '">';
$select .= '<option value="' . $res["id_student"]."'>' .   $res["name"] . 

我们错过了值的双引号和选择名称

答案 1 :(得分:0)

问题解决了,我只需要在for循环中插入vars $ exe和$ execute,所以每次迭代后都会刷新$ result,否则它只会在第一次选择中打印选项...

CODE:

$con=mysqli_connect("localhost","root","","novi-studomat");
$exe="SELECT * FROM kolegij WHERE id_student='$id_student'";

$execute=mysqli_query($con,$exe);
$select = '';

for($j = 0; $j < mysqli_num_rows($execute); $j++) 
{
    $exe="SELECT * FROM kolegij WHERE id_student='$id_student'";
    $execute=mysqli_query($con,$exe);

    $select .= '<select name=student' . $j . '>';
    $select .= '<option value="-1" >Choose student</option> <br/>';
    while($result=mysqli_fetch_array($execute)) 
    {
         $select .= '<option value=' . $res["id_student"].'>' .   $res["name"] . '</option>';
    }
    $select .= '</select>';
}
echo $select;