在select中显示数据库中的数据作为选项

uelo1irk  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(312)

我正在为一个在线dvd租赁和预订系统编写网站代码,并尝试在下拉菜单中调用dvdid,它是我phpmyadmin数据库中dvd的主键和标题,但当我尝试调用其中的id时,它不起作用。任何帮助都将不胜感激。

<form name="FrmAmend" method="post" action="amenddvd2.php">
Select from the list below<br>
<select name="Film" title="Select DVD">
    <option value="" selected disabled>Select DVD</option>
<?php

$result = mysqli_query($con, "SELECT `DVDID`, `Title` FROM tbldvd;");
$row = mysqli_fetch_assoc($result);
foreach ($result as $row) {
    echo "<option value='" . $row['DVDID'] . $row['Title'] . "'>" . $row['DVDID'] . $row['Title'] . "</option>";

}
?>
</select><br>
<a href="menu.php"</a>Return To Main Menu<br>
<input type="submit" name="Submit" value="Select DVD">
</a>
</form>
sczxawaw

sczxawaw1#

你的问题是你收集数据的方式,你有以下几点;

$row = mysqli_fetch_assoc($result);
foreach ($result as $row) {
``` `mysqli_fetch_assoc` 从结果集中收集一行,更好的方法是替换上面的内容并使用下面的内容;

while ($row = mysqli_fetch_assoc($result) {

这将从数据库中获得结果,一行一行地打印出来,而无需在循环中进行更改
在一段时间内循环,使用 `mysqli_fetch_assoc` 收集每一行,一次一个,让您更有效地使用它。
所以,如果你有以下数据;

DVDID Title
1 ABC
2 DEF

while循环为结果集中的每一行收集行,一次收集一行,其中单个fetch\u assoc将收集结果集中出现的第一行,仅此而已
另外,您还有以下html;

<a href="menu.php"Return To Main Menu

这不是有效的html,从这一点来看,它看起来像你想要“*返回到主菜单”是超链接,所以取代上面的以下内容将解决这个问题;

Return To Main Menu

这将在第一个“a”处添加结束符( `>` )并将文本移动到“开始”和“结束”标记中

相关问题