0

我在向表中添加购买信息时遇到问题。我创建了一个购物车,结账时有一个购买按钮。在我继续之前,这是我的表格的结构方式:

购买(表):

  • 购买 ID(主键)
  • FrameNumber(外键)
  • 日期
  • 电子邮件

自行车库存:

  • 帧号(主键)
  • 购买 ID(外键)- 链接到购买表。
  • BikeCode(外键) - 自行车表的链接。

当有人点击购买表时,我想输入一个购买 ID,从 Bikecode = '我希望购买的自行车的代码'的 Bikestock 表中获取 FrameNumber。

我到目前为止是这样的:

<?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 信息,而且我不断使用主键获取重复条目,因为它选择随机数并且帧号不断被复制,但它是一个外键,所以如果使用一个帧号,它必须选择另一个如果它的帧数用完,我希望它说缺货。

非常感谢您的帮助,如果我不清楚,请告诉我在哪里,我会解决的。

4

1 回答 1

1

一些建议:

1)更改您的购买表以包含自动增量主键。不要使用随机数。
2)更改此插入:

插入购买价值

更像是:

插入购买 (PurchaseID, FrameNumber, ...) VALUES ?, ?, ...

并使用准备好的语句。

3) 如果您将日期格式化为 YYYY-MM-DD,MySQL 会更满意。
4) 在将其添加到购物车之前检查“框架缺货”。

于 2012-12-09T13:23:35.317 回答