单击按钮时 PHP 问题更新数据库

标签 php mysql database

您好,我正在用 php 创建一个商店,我用一个 while 循环填充商店,以便显示我数据库中的所有商店商品。这工作正常,但是当我按下购买按钮时尝试更新帐户中的股票数量和剩余资金时,我遇到了问题。

$ItemCost 变量仅保存最后填充的项目成本,我不确定如何保存每个项目的成本以将其插入数据库。 此外,$StockCount 变量将库存计数设置为 1。

我该如何解决这个问题。

    <?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "useraccounts";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

$GatherItems = "SELECT * FROM shopitems WHERE StockCount > 0  ORDER BY`shopitems`.`Cost` DESC";
$result = $conn->query($GatherItems);

if ($result->num_rows > 0) {
// output data of each row

while($row = $result->fetch_assoc()) {
    $ItemName = $row['ItemName'];
    $ItemCost = $row['Cost'];
    $ID = $row['ID'];
    $StockCount = $row['StockCount'];
    $Money = $row['Money'];

echo "<div class='test'>$ItemName</div>";
echo "<div class='test1'>$ItemCost </div>";
echo "<input type='submit'  class='btn btn-primary' name='Buy' value='Buy Now'/>";
}

$NewTotal = $Money - $ItemCost;
$Inventory = "UPDATE shopitems SET StockCount = $StockCount-1, Money = $NewTotal WHERE ID = $ID";

if(isset($_POST['Buy'])){
if ($conn->query($Inventory) === TRUE) {
    echo "New record created successfully";
} else {
echo "Error: " . $Inventory . "<br>" . $conn->error;
   }
}
}
$conn->close();
?>

最佳答案

正如@Sean 所说,您可以这样做:

<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "useraccounts";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

if(isset($_POST['Buy'])){
// update stock and money

$ID = $_POST['ID'];
$Money = $_POST['Money'];
$ItemCost = $_POST['ItemCost'];
$NewTotal = $Money - $ItemCost;
$Inventory = "UPDATE shopitems SET StockCount = $StockCount-1, Money = 
$NewTotal WHERE ID = $ID";

if ($conn->query($Inventory) === TRUE) {
    echo "New record created successfully";
} else {
echo "Error: " . $Inventory . "<br>" . $conn->error;
   }
} 

// display items

$GatherItems = "SELECT * FROM shopitems WHERE StockCount > 0  ORDER 
BY`shopitems`.`Cost` DESC";
$result = $conn->query($GatherItems);

if ($result->num_rows > 0) {
// output data of each row

while($row = $result->fetch_assoc()) {
    $ItemName = $row['ItemName'];
    $ItemCost = $row['Cost'];
    $ID = $row['ID'];
    $StockCount = $row['StockCount'];
    $Money = $row['Money'];
    echo "<form method='post' action=''>";
    echo "<div class='test'>$ItemName</div>";
    echo "<div class='test1'>$ItemCost </div>";
    echo "<input type='hidden'  name='Id' value='".$ID."'/>";
    echo "<input type='hidden'  name='Money' value='".$Money."'/>";
    echo "<input type='hidden'  name='ItemCost' value='".$ItemCost."'/>";
    echo "<input type='submit'  class='btn btn-primary' name='Buy' value='Buy Now'/>";
    echo "</form>";

}
}

$conn->close();

关于单击按钮时 PHP 问题更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46762316/

相关文章:

php - <?php bp_activity_id() ?> 在 buddypress 中,有人达标了吗?

mysql - 我的SQL服务器启动错误未知变量 'ndb-blob-read-batch-bytes=65536'

mysql - MySQL 中何时使用单引号、双引号和反引号

database - 如果 HTTP 是无状态的,为什么我需要关闭数据库连接?

python - 有任何使用 Protocol Buffer 的经验吗?

php - 如何阻止某人返回上一页?

javascript - footer.php wordpress 中的一段 javascript 可以在 PC 上运行,但不能在移动设备上运行

database - Grails GORM映射FK而不是另一个表的PK

PHP Twig : access current template variable from within macro without passing?

php - 使用 JOIN NULL 值匹配数据库中的列名