如何在PHP中从mySQL表填充下拉框

如何在PHP中从mySQL表填充下拉框,php,html,mysql,Php,Html,Mysql,我有一个mysql数据库,其中包含一个drivers表,该表包含以下字段: 身份证件 名字 姓 国籍 团队id 我试图创建一个PHP,它检索每个驱动程序的名称和id,然后输出应该包含一个HTML表单,该表单应该包含一个提交按钮和一个下拉框。下拉输入应该包含驱动程序名称,当按下submit按钮时,表单应该通过GET方法提交到另一个名为task4.php的php 我已经开始做一些代码,但无法完成它 <?php // Create connection $con=mysqli_connect("

我有一个mysql数据库,其中包含一个drivers表,该表包含以下字段: 身份证件 名字 姓 国籍 团队id

我试图创建一个PHP,它检索每个驱动程序的名称和id,然后输出应该包含一个HTML表单,该表单应该包含一个提交按钮和一个下拉框。下拉输入应该包含驱动程序名称,当按下submit按钮时,表单应该通过GET方法提交到另一个名为task4.php的php

我已经开始做一些代码,但无法完成它

<?php
// Create connection
$con=mysqli_connect("hostname","login","password","db_name");

// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL:" . mysqli_connect_error();
}
$result = mysqli_query($con, "SELECT forename, surname, id FROM Drivers);

$options="";

while ($row=mysql_fetch_array($result)) {
$id=$row["forename"];
$thing=$row["surname"];
$options.="OPTION VALUE=\"$id\">".$forename;
}
?>

当您从
SELECT
语句中获得结果时,它的形式是
$row['columnName']

$result = mysqli_query($con, "SELECT forename, surname, id FROM Drivers");

$options="<select>";

while ($row=mysqli_fetch_array($result)) {

    $options .= '<option value="'.$row["id"].'">'.$row["forename"].' '.$row["surname"].'</option>';

}

$options .= '</select>';

echo '<form action="task4.php">';
echo $options;
echo '<input type="submit" name="submit">';
echo '</form>';
$result=mysqli_query($con,“从驱动程序中选择名字、姓氏、id”);
$options=“”;
while($row=mysqli\u fetch\u数组($result)){
$options.='.$row[“forename”]。$row[“姓氏”];
}
$options.='';
回声';
echo$期权;
回声';
回声';

这应该给你一个开始

<?php
// Create connection
$con=mysqli_connect("hostname","login","password","db_name");

// Check connection
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL:" . mysqli_connect_error();
}    

$result = mysqli_query($con, "SELECT forename, surname, id FROM Drivers);
?>

<form action='form4.php' method='get'>
<select name='driver_name'>

<?php
while ($row=mysqli_fetch_array($result)) {
echo "<option value='{$row['id']}'>".$row['forename']." ".$row['lastname']."</option>";
}
?>
</select>
<input type='submit' name='submit' value='Submit'>
</form>

mysqli\u query
的调用结束时,第一个问题是缺少一个引号。您还尝试使用mysql_fetch_数组-您不能混合调用mysqli_和mysql_函数。此外,如果您直接使用它,您不必将
$row
中的值存储到新变量中。你错过了开场白“您正在对来自
mysqli\u查询
的结果集使用
mysql\u fetch\u数组。那是行不通的,修好了。谢谢,@andrewsiHi,谢谢您的帮助,如果我想让用户在按名称选择特定驱动程序时,提交给task4.php的是他们的id而不是他们的名称。选项标记中的值也是传递的值。如果希望它成为名字,请使用value属性的名字。在我的示例中,我在值中传递$id。因此,无论从数据库返回什么值id,它都将使用该值。介于
之间的文本是您在屏幕上看到的文本。这不会影响通过GET方法传递的值。因此,当前此代码正在传递id,因此,如果我想传递名字和姓氏,您可以使用
$forename.$lasname
来传递它,而不是
$id
<?php
// Create connection
$con=mysqli_connect("hostname","login","password","db_name");

// Check connection
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL:" . mysqli_connect_error();
}    

$result = mysqli_query($con, "SELECT forename, surname, id FROM Drivers);
?>

<form action='form4.php' method='get'>
<select name='driver_name'>

<?php
while ($row=mysqli_fetch_array($result)) {
echo "<option value='{$row['id']}'>".$row['forename']." ".$row['lastname']."</option>";
}
?>
</select>
<input type='submit' name='submit' value='Submit'>
</form>