使用 PHP 和 mySql 从下拉菜单中选择选项
Posted
技术标签:
【中文标题】使用 PHP 和 mySql 从下拉菜单中选择选项【英文标题】:Select option from dropdown menu with PHP and mySql 【发布时间】:2013-12-15 03:47:40 【问题描述】:我尝试从 mysql 数据库创建一个简单的选择下拉菜单。但是,它不适用于我的代码。
这是我的代码:
<?php
mysql_select_db($database_conn, $conn);
$query_RsCourse = "SELECT * FROM tbl_course ORDER BY courseid DESC";
$RsCourse = mysql_query($query_RsCourse, $conn) or die(mysql_error());
$totalRows_RsCourse = mysql_num_rows($RsCourse);
$count=0;
while ( $row = mysql_fetch_array($RsCourse, MYSQL_ASSOC))
$courseid=$row["courseid"];
$count++;
?>
<tr>
<td bgcolor="#CCCCCC"> Course Name</td>
<td bgcolor="#dfdfdf"> <select name="courseid">
<option value="" SELECTED>Selected Course</option>
<option value="<?php echo $courseid; ?>"><?php echo $row_RsCourse['$courseid']; ?></option>
</select>
</td>
</tr>
任何建议将不胜感激!
【问题讨论】:
在构建选择选项之前,您将在 while 循环中覆盖$courseid
,因此您只会获得 $courseid
的最后一个值
那么我可以对我的代码做什么?谢谢。
你从哪里得到$row_RsCourse['$courseid'];
?
【参考方案1】:
<?php
echo '<tr>
<td bgcolor="#CCCCCC"> Course Name</td>
<td bgcolor="#dfdfdf"> ';
mysql_select_db($database_conn, $conn);
$query_RsCourse = "SELECT * FROM tbl_course ORDER BY courseid DESC";
$RsCourse = mysql_query($query_RsCourse, $conn) or die(mysql_error());
$totalRows_RsCourse = mysql_num_rows($RsCourse);
if($totalRows_RsCourse)
echo '<select name="courseid"><option value="" SELECTED>Selected Course</option>';
$count=0;
while ($row = mysql_fetch_array($RsCourse, MYSQL_ASSOC))
$count++;
echo '<option value="'.$row['courseid'].'">'.$row['courseid'].'</option>';
echo '</select>';
else
echo 'No courses to show yet.'; // no rows in tbl_course
echo '</td>
</tr>';
?>
那是一团糟,但希望你能继续使用这些新代码。享受吧。
PS:这部分>'.$row['courseid'].'</option>
你可以根据你的表结构改成新的,这里没有显示。
<?php
echo '<tr>
<td bgcolor="#CCCCCC"> Course Name</td>
<td bgcolor="#dfdfdf"> ';
mysql_select_db($database_conn, $conn);
$query_RsCourse = "SELECT * FROM tbl_course ORDER BY courseid DESC";
$RsCourse = mysql_query($query_RsCourse, $conn) or die(mysql_error());
$totalRows_RsCourse = mysql_num_rows($RsCourse);
echo '<select name="courseid"><option value="" SELECTED>Selected Course</option>';
$count=0;
while ($row = mysql_fetch_array($RsCourse, MYSQL_ASSOC))
$count++;
echo '<option value="'.$row['courseid'].'">'.$row['courseid'].'</option>';
echo '</select></td>
</tr>';
?>
【讨论】:
是的。我试图回显“”;它能够显示在屏幕上。但是,它无法出现在选择下拉菜单中。 是的,我预料到了,这就是我给你那个代码的原因。好吧,您的 tbl_course 中有任何行/数据吗??????你能在里面通过 phpmyadmin 看到任何数据吗??? 可以用while命令单独做代码吗?我有表格可以在其他 php 寻呼机中发布。谢谢。 这段代码是可操作的麻猴。如果您看到“还没有要显示的课程”,这意味着:a)您在“tbl_course”中没有任何数据,或者 b)这是 mysql 查询错误。但是下面是干净的“while”代码。:P 感谢您的回复。我复制了你的代码和意大利面来创建新的。它工作正常。但是,我尝试将代码与您的代码分开处理。这是行不通的。该表包括数据。我现在正在尝试解决这个问题。【参考方案2】:您可以将所有内容存储在缓冲区中,然后在下面的选择中立即打印:
<?php
mysql_select_db($database_conn, $conn);
$query_RsCourse = "SELECT * FROM tbl_course ORDER BY courseid DESC";
$RsCourse = mysql_query($query_RsCourse, $conn) or die(mysql_error());
$courseshtml = "";
while ( $row = mysql_fetch_array($RsCourse, MYSQL_ASSOC))
$coursesHtml .= "<option value='$row["courseid"]'>$row["coursename"]</option>";
?>
<tr>
<td bgcolor="#CCCCCC">Course Name</td>
<td bgcolor="#dfdfdf">
<select name="courseid">
<option value="" SELECTED>Selected Course</option>
<?= $coursesHtml ?>
</select>
</td>
</tr>
PS:避免使用 &nbsp;
,使用 padding-left: 5px;
或其他功能使用 css 为您的 html 设置样式;
PS2:你不应该用表格结构来展示你的页面/表单,使用带有 flexbox 的 div。
【讨论】:
以上是关于使用 PHP 和 mySql 从下拉菜单中选择选项的主要内容,如果未能解决你的问题,请参考以下文章
(实用篇)jQuery+PHP+MySQL实现二级联动下拉菜单
从 PHP/MYSQL 选择值填充下拉菜单。如何重新排列输出