我在向表中添加购买信息时遇到问题。我创建了一个购物车,结账时有一个购买按钮。在继续之前,这是我的表格的结构方式:
购买(表):
- 购买 ID(主键)
- FrameNumber(外键)
- 日期
- 电子邮件
自行车库存:
- 帧编号(主键)
- 购买 ID(外键)- 购买表的链接。
- BikeCode(外键)- 链接到自行车表。
当有人点击购买表时,我希望输入一个购买 ID,从 Bikestock 表中获取 FrameNumber,其中 Bikecode =“我希望购买的自行车的代码”。
到目前为止我所拥有的是:
<?php
session_start();
include ("connection.php");
$sql = "SELECT b.FrameNumber, b.BikeCode, p.FrameNumber FROM BikeStock b LEFT JOIN Purchase p on b.FrameNumber = p.FrameNumber WHERE b.bikecode = 'MABE2012-5'";
$result = mysqli_query($con, $sql) or die('Query1 failed: ' . mysqli_error($con));
while($row = mysqli_fetch_array($result)) {
$framenumber = $row[0];
echo $framenumber . "<br>";
}
$PurchaseID = (rand(1,24));
$date = date("d/m/Y");
$Email = $_SESSION["user"];
$sql1 = "INSERT INTO Purchase VALUES (\"$date\",\"$PurchaseID\",\"$Email\", \"$framenumber\")";
$result1 = mysqli_query($con, $sql1) or die('Query2 failed: ' . mysqli_error($con));
echo $date . "<br>";
echo $PurchaseID . "<br>";
echo $Email . "<br>";
?>
我不确定如何添加 $bikecode 信息,而且我不断收到带有主键的重复条目,因为它选择随机数,并且帧号不断被复制,但它是一个外键,因此如果使用一个帧号,它必须选择另一个,如果它用完框架编号,我希望它说缺货。
非常感谢您的帮助,如果我不清楚,请告诉我在哪里,我会解决。
最佳答案
一些建议:
1) 更改您的购买表以包含自动增量主键。不要使用随机数。
2)更改此插入:
INSERT INTO Purchase VALUES
更像是:
INSERT INTO Purchase ( PurchaseID, FrameNumber, ...) VALUES ?, ?, ...
并使用准备好的语句。
3) 如果您将日期格式化为 YYYY-MM-DD,MySQL 会更满意。
4) 在将其添加到购物车之前,请检查是否有“框架缺货”。
关于php - 如何将信息添加到采购表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13787590/