Php 从MySQL数据库获取值并填充下拉框
我希望有人能帮我解决这个问题,因为我是PHP和MySQL新手。但基本上,我要做的是从数据库中提取数据并填充下拉框和文本框,这样我就可以更新文本框中的值 这是表结构:Php 从MySQL数据库获取值并填充下拉框,php,mysql,arrays,fetch,dropdown,Php,Mysql,Arrays,Fetch,Dropdown,我希望有人能帮我解决这个问题,因为我是PHP和MySQL新手。但基本上,我要做的是从数据库中提取数据并填充下拉框和文本框,这样我就可以更新文本框中的值 这是表结构: id | hf_name | hf_price ------------------------ AI | test 1 | 123 AI | test 2 | 123 假设我想更新“测试1”价格,我会在下拉选择中选择“测试1”,并更新教科书中的价格 这是我的代码: <form class='data_form' act
id | hf_name | hf_price
------------------------
AI | test 1 | 123
AI | test 2 | 123
假设我想更新“测试1”价格,我会在下拉选择中选择“测试1”,并更新教科书中的价格
这是我的代码:
<form class='data_form' action='data/food_update.inc.php' method='post'>
<select>
<?php while ($row = mysqli_fetch_array($result)):; ?>
<option><?php echo $row[1];?></option>
<?php endwhile;?>
</select>
<input type='number' name='hf_price' placeholder='$'>
<button type='submit'>UPDATE</button>
</form>
更新
包括:
<?php
//CONNECTION TO MySQL
include '../dbh.php';
//VARIABLES
$hf_name = $_POST['hf_name'];
$hf_price = $_POST['hf_price'];
$by_user = $_SESSION['Fname'];
$up_date = date('Y-m-d');
$sql = "SELECT hf_name FROM hotfoods";
$result = mysql_query($conn, $sql);
?>
谢谢 尝试将选项更改为
<option value="<?php echo $row[2];?>"><?php echo $row[1];?></option>
但为此,您需要将id数据类型更改为int
$query = "select * from tablename";
$result = mysqli_query();
<select id="nameID" name="hf_name">
<?php
while($row = mysqli_fetch_assoc($result){
?>
<option value='<?php echo $row['id']; ?>'><?php echo $row['hf_name']; ?></option>
<?php
}
?>
</select>
试试这个,它可能会起作用。$query=“select*fromtablename”;
$query = "select * from tablename";
$result = mysqli_query($query);
<select>
<?php
while($row = mysqli_fetch_assoc($result){
?>
<option value='<?php echo $row['hf_name']; ?>'><?php echo $row['hf_name']; ?></option>
<?php
}
?>
</select>
$result=mysqli\u查询($query);
您应该在select元素上分配一个name属性值(在本例中为hf_name),以便在$\u POST
数组中可用
<form class='data_form' action='data/food_update.inc.php' method='post'>
<select name="hf_name">
<?php while ($row = mysqli_fetch_array($result)):; ?>
<option value="<?php echo $row['hf_name']?>"><?php echo $row['hf_name'];?></option>
<?php endwhile;?>
</select>
<input type='number' name='hf_price' placeholder='$'>
<button type='submit'>UPDATE</button>
</form>
停止使用不推荐的mysql.*
API。使用mysqli.*
或PDO
在include
中使用mysql\u query()
,在实际代码中使用mysqli\u fetch\u array()
。我很确定它们不能一起使用,也许你有一个输入错误,意思是没有I。但正如Jens所说,你应该停止使用mysql函数,转而使用PDO或mysqli。同时尝试使用
PHP数组,从0开始,你试图从索引1中得到结果,我认为这在你的SQL查询中是不存在的。我不知道包含单词“want”的ansa问题。是的,谢谢你指出这一点。这是一个输入错误,但即使我使用mysqli,它仍然会给我一个空的下拉框。在我正在处理的网页中,我希望有一个由食物名称填充的下拉框(hf_名称)和一个由价格填充的文本框(hf_价格),具体取决于所选食物的名称。假设我想更新一种特定食物的价格,我会从下拉框中选择食物的名称,然后从文本框中更改价格。希望这是清楚的?谢谢。在数据库栏中更新?是的。更新数据库列中的价格(hf_price)。我已经更新了答案检查并尝试了一下。但必须根据您的要求进行更改。我尝试了这个,但下拉列表仍然为空。我不确定我到底错过了什么。第一列是id,第二列是hf_名称,第三列是hf_价格。下拉列表仍然为空是什么意思?检查代码是否出现在while($row=mysqli_fetch\u assoc($result){
循环中。
<form class='data_form' action='data/food_update.inc.php' method='post'>
<select name="hf_name">
<?php while ($row = mysqli_fetch_array($result)):; ?>
<option value="<?php echo $row['hf_name']?>"><?php echo $row['hf_name'];?></option>
<?php endwhile;?>
</select>
<input type='number' name='hf_price' placeholder='$'>
<button type='submit'>UPDATE</button>
</form>
<?php
//CONNECTION TO MySQL
include '../dbh.php';
//VARIABLES
$hf_name = $_POST['hf_name'];
$hf_price = $_POST['hf_price'];
$query = sprintf("UPDATE hotfoods SET hf_price='%d' WHERE hf_name='%s'",
mysql_real_escape_string($hf_price),
mysql_real_escape_string($hf_name));
$result = mysql_query($conn, $query);
if ($result) {
echo 'Price updated!';
} else {
echo 'Problem while updating price';
}
?>