gpt4 book ai didi

php - PDO表单添加到数据库: Array number is added rather than the text it represents

转载 作者:行者123 更新时间:2023-11-29 12:05:57 25 4
gpt4 key购买 nike

我是 PHP 和 PDO 新手。我已经设法让 PDO 在单击提交按钮时将表单数据添加到 mysql 数据库。我遇到的问题是下拉框,它选择并显示另一个数据库表中的数据。当将其添加到数据库而不是显示所选选项“上衣、帽子或外套”时,它会显示“0、1、2”。

HTML 代码(带有一些 PHP):

<!DOCTYPE html>
<html>
<head>
</head>

<body>
<div>
<?PHP include_once("addProduct.php");?>
<form method="post" action="">
Product Name: <input type="text" id="productName" name="productName" /><br />

Catagory:
<?php
mysql_connect("localhost", "root","") or die(mysql_error());
mysql_select_db("web_scripting") or die(mysql_error());
$query = "SELECT id,category FROM catagory_table";
$result = mysql_query($query) or die(mysql_error()."[".$query."]");
?>
<select type="text" id="category" name="category">
<?php
while ($row = mysql_fetch_array($result))
{
echo "<option value='".$row['id']."'>'".$row['category']."'</option>";
}
?> </select><br />

Stock: <input type="number" id="stock" name="stock" /><br />

Cost: <input type="number" id="cost" name="cost" /><br />

<input type="submit" value="add"> <br />

<?PHP
$query = "SELECT * FROM product_table";
$result = $odb->query($query);
if($result->rowCount() > 0) {
foreach($result as $item) {
echo($item['name'] . " , " . $item['category'] . " , " . $item['stock'] . " , " . $item['cost'] . "<br />");
}
}
?>
</form>
</div>

</body>

PHP 代码:

$host = "localhost";
$user = "root";
$db = "web_scripting";
$pass = "";

$odb = new PDO("mysql:host=" . $host . ";dbname=" . $db, $user, $pass);

if(isset($_POST['productName'])) {
$productName = $_POST['productName'];
$category = $_POST['category'];
$stock = $_POST['stock'];
$cost = $_POST['cost'];
$q = "INSERT INTO product_table(name, category, stock, cost) VALUES(:name, :category, :stock, :cost);";
$query = $odb->prepare($q);
$results = $query->execute(array(
":name" => $productName,
":category" => $category,
":stock" => $stock,
":cost" => $cost
));
}
?>

最佳答案

我想说这是正确的,您的数据库正在保存您想要的类别的 id。可以通过在类别表中查询该 id 来找到该类别的名称。这就是关系数据库设计。考虑一下您是否确实将类别名称存储在产品表中。随后,您决定更改类别名称,您将需要更新所有产品记录,而不仅仅是一个类别记录。

关于php - PDO表单添加到数据库: Array number is added rather than the text it represents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31492173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com