[英]php dropdown list from mysql
我上周刚开始学习php,我正尝试从mysql数据库的html表单中填充下拉列表的值。 下拉列表显示,但仅显示“选择”作为选项。 我做错了什么,任何帮助将不胜感激。 以下是我的代码的问题部分。
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php
require_once('connectvars.php');
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$query = "SELECT event_id, event_name FROM events";
$results= mysqli_query( $dbc, $query);
$options="";
while ($row=mysql_fetch_array($result)) {
$id=$row["event_id"];
$event=$row["event_name"];
$options ="<OPTION VALUE=\"$id\">".$event;
}
?>
<SELECT NAME=eventid>
<OPTION VALUE=0>Choose
<?php echo $options ?>
</SELECT>
</form>
更改
$options ="<OPTION VALUE=\"$id\">".$event;
至
$options .="<OPTION VALUE=\"$id\">".$event;
串联而不是总是更改值。也可以考虑关闭选项标签。
在Benedikt Olek的回答之后包括更正。
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php
require_once('connectvars.php');
$dbc = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
$query = "SELECT event_id, event_name FROM events";
$db = mysql_select_db(DB_NAME);
$results= mysql_query( $dbc, $query);
?>
<SELECT NAME=eventid>
<OPTION VALUE=0>Choose</OPTION>
<?php
while($row = mysql_fetch_array($results)
echo "<option value=\"" . $row['event_id'] . "\">" . $row['event_name'] . "</option>";
?>
</SELECT>
</form>
这是mysql驱动程序解决方案。
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php
require_once('connectvars.php');
$dbc = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
$db = mysql_select_db(DB_NAME);
$results= mysql_query("SELECT event_id, event_name FROM events");
?>
<select name="eventid">
<option value="0">Choose</OPTION>
<?php
while($row = mysql_fetch_array($results)) {
echo '<option value="'.$row['event_id'].'">'. $row['event_name'].'</option>';
}
?>
</select>
</form>
试试这个:
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<SELECT NAME=eventid>
<?php
require_once('connectvars.php');
$dbc = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
mysql_select_db(DB_NAME);
$query = "SELECT event_id, event_name FROM events";
$results= mysql_query( $dbc, $query);
$options="";
while ($row=mysql_fetch_array($result)) {
$id=$row["event_id"];
$event=$row["event_name"];
echo "<OPTION VALUE=".$id\.">".$event."</option>";
}
?>
</SELECT>
</form>
由于“选择”是一个硬编码选项,因此始终显示。 您不会获得更多结果,因为Variable $options
为空。 您可以使用var_dump($options)
。
空变量的原因是while迭代。 您的函数mysql_fetch_array()
永远不会返回true。
那是因为您混淆了驱动程序。 您正在通过mysqli
连接,因此mysql_fetch_array无法正常工作。
您有两个选择:更改为使用mysql驱动程序进行连接,或者重新编码迭代以使用mysqli-api。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.