为什么我的下拉列表没有填充表数据?

时间:2013-06-17 22:07:12

标签: php database populate

为什么我的下拉列表没有填充表格数据? (下拉框为空) 用于在选择下拉列表中的项目时显示数据 - 是“视图”(请提供学习链接以便我学习)

我的代码

<?php
$con=mysqli_connect("localhost","root","","ismat_db");
//check connection
if(mysqli_errno($con))
{
echo "Can't Connect to mySQL:".mysqli_connect_error();
}
else
{
echo "Connected to mySQL</br>";
}

 //$query = 'SELECT FirstName FROM persons';
//$result = mysqli_query($con,$query);

$query = mysqli_query($con,"SELECT 'FirstName' FROM persons");

//print_r($query);

//echo '<select name="FirstName">';
echo "<select name= 'FirstName'>";
//while($row=mysqli_fetch_array($result))
while($row=mysqli_fetch_array($query))
{
echo $row;
//echo "<option value='".$row['FirstName']."'>".'</option>';
}
echo '</select>';

?>

2 个答案:

答案 0 :(得分:0)

试试这个:

echo "<option value='".$row['FirstName']."'>".$row['FirstName']."</option>";

您似乎也遇到了数据库查询问题。使用以下内容交换while循环,看看它是否有效

if ($result = $mysqli->query($query)) {

    while ($row = $result->fetch_assoc()) {
    echo "<option value='".$row['FirstName']."'>".$row['FirstName']."</option>";
    }

$result->free();
}

答案 1 :(得分:0)

您有2个错误:

我在评论中指出了第一句:要打印一个选项,你必须使用这段代码:

echo "<option value='". $row['FirstName']."'>".$row['FirstName']
 . '</option>';

第二个是你的SQL:你没有从数据库中选择FirstName字段,而是选择字符串'FirstName'。这就是为什么它按照你说的打印两次。使用此SQL获取字段:

$query = mysqli_query($con,"SELECT FirstName FROM persons");

通常人们也会记录记录的id而不是字段,这可能会重复<option>的值。所以,我会用:

echo "<option value='". $row['id']."'>".$row['FirstName']
 . '</option>';

从数据库中选择id和名字。