我正在练习使用 HTML/PHP/MySQL,并且正在开发一个小项目。
我想创建一个页面,允许用户向 MySQL 表添加记录。用户将通过 HTML 表单输入值。然后,该数据将被发布到 php 脚本以执行实际的 INSERT INTO。
该数据库是一家商店的数据库,有 2 个表,产品和制造商。添加产品时,我还必须添加制造商的代码。我想填充一个下拉列表,显示制造商的名称(取自制造商表)。
我正在尝试将此 PHP 代码嵌入到 HTML 文件中。这是代码:
<form action="" method="post">
<fieldset>
<legend>Enter Product Details:</legend>
Product Name:<input type="text" name="productName"><br>
Product Price:<input type="text" name="Price"><br>
<?php
$host="localhost";
$user="root";
$pass="";
$db="computer_shop";
$conn=mysqli_connect($host,$user,$pass,$db) or die ("Couldn't connect");
$sql="SELECT * FROM manufacturer";
$result=mysqli_query($conn,$sql) or die ("Could not execute query!");
if(!$result){
echo"Error with results";
}
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$code=$row["Code"];
$name=$row["Name"];
echo"<select name='select'>";
echo"<option value=" .$code.">".$name."</option>" ;
<echo"</select>";
}
echo "<br>";
} else {
echo "0 results";
}
mysqli_close($conn);
?>
<input type="submit" value="Submit">
</fieldset>
</form>
当我尝试这样做时,进展并不顺利。当我加载页面时,表单的初始部分(名称和价格的输入框都很好),但下拉列表很乱,我看到代码:“0){ while($ row = mysqli_fetch_assoc( $result)) { $code=$row["Code"]; $name=$row["Name"]; echo"以及仅显示 $name 的下拉列表,然后是提交按钮。所以 HTML 文件显示的是实际 PHP 代码的一部分。
我的问题是,如何解决这个问题,以便下拉列表将显示 mysql 数据库中的值?我一直在浏览各种网站,尝试不同的事情,但我不断遇到类似的问题。我应该翻转一些东西,并将 HTML 嵌入到 PHP 文件中吗?
最佳答案
一般来说,这段代码不是一个好的做法。确保此代码位于 .php
文件中,并且您的 Web 服务器支持 php。
除此之外,我认为以下脚本可以解决您的问题。
if (mysqli_num_rows($result) > 0) {
//open the select tag before the loop
echo"<select name='select'>";
//populate the select
while($row = mysqli_fetch_assoc($result)) {
$code=$row["Code"];
$name=$row["Name"];
echo"<option value=" .$code.">".$name."</option>" ;
}
//close the select tag after the loop
echo"</select>";
echo "<br>";
} else {
echo "0 results";
}
关于php - 使用 PHP/MYSQL 填充 HTML 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46511862/