仍然允许在缺货时购买/php、sql
我试图阻止用户在产品缺货时购买它。下面的代码没有显示任何错误,即使库存低于零,也允许用户购买产品。对我做错了什么有什么建议吗仍然允许在缺货时购买/php、sql,php,Php,我试图阻止用户在产品缺货时购买它。下面的代码没有显示任何错误,即使库存低于零,也允许用户购买产品。对我做错了什么有什么建议吗 <?php $productID= $_GET['ID']; $username = $_SESSION['solentuser']; $conn=new PDO("mysql:host=localhost;dbname=user;","user","pass"); $results=$conn->query("SEL
<?php
$productID= $_GET['ID'];
$username = $_SESSION['solentuser'];
$conn=new PDO("mysql:host=localhost;dbname=user;","user","pass");
$results=$conn->query("SELECT stocklevel FROM products");
$row=$results->fetch();
if($row['stocklevel'] >= 1){
$conn->query("INSERT INTO basket(productID,username,qty) values($productID,'$username',1)");
$conn->query("UPDATE products SET stocklevel=stocklevel-1 WHERE ID=$productID");
echo "You have successfully added this product to your basket!";
echo "<br><br><p> <a href='basket.php'>View my basket!</a></p>";
}
else{
echo "This product is out of stock!";
echo "<p><a href='index.php'>Back to Search page</a></p>";
}
//print_r($conn->errorInfo());
?>
可能需要更改为:从id=$productID的产品中选择stocklevel
因为之前您从所有产品中选择库存水平可能需要更改为:从产品中选择库存水平,其中id=$productID
因为之前您从所有产品中选择库存水平您必须根据产品Id选择产品
<?php
$productID= $_GET['ID'];
$username = $_SESSION['solentuser'];
$conn=new PDO("mysql:host=localhost;dbname=user;","user","pass");
$results=$conn->query("SELECT stocklevel FROM products Where productID=$productID");
$row=$results->fetch();
if($row['stocklevel'] >= 1){
$conn->query("INSERT INTO basket(productID,username,qty) values($productID,'$username',1)");
$conn->query("UPDATE products SET stocklevel=stocklevel-1 WHERE ID=$productID");
echo "You have successfully added this product to your basket!";
echo "<br><br><p> <a href='basket.php'>View my basket!</a></p>";
}
else{
echo "This product is out of stock!";
echo "<p><a href='index.php'>Back to Search page</a></p>";
}
//print_r($conn->errorInfo());
您必须根据产品Id选择产品
<?php
$productID= $_GET['ID'];
$username = $_SESSION['solentuser'];
$conn=new PDO("mysql:host=localhost;dbname=user;","user","pass");
$results=$conn->query("SELECT stocklevel FROM products Where productID=$productID");
$row=$results->fetch();
if($row['stocklevel'] >= 1){
$conn->query("INSERT INTO basket(productID,username,qty) values($productID,'$username',1)");
$conn->query("UPDATE products SET stocklevel=stocklevel-1 WHERE ID=$productID");
echo "You have successfully added this product to your basket!";
echo "<br><br><p> <a href='basket.php'>View my basket!</a></p>";
}
else{
echo "This product is out of stock!";
echo "<p><a href='index.php'>Back to Search page</a></p>";
}
//print_r($conn->errorInfo());
测试似乎很好。你确定这不是数据库问题吗?您真的看到它在数据库中下降到0了吗?测试看起来不错。你确定这不是数据库问题吗?你真的看到它在数据库中降到0了吗?总是这些小东西吸引着我!总是这些小东西在吸引我!这个想法是正确的,但是将Where productID
改为Where ID
更正确我知道,但他使用的是字段名productID,所以我给了他。这个想法是正确的,但是将Where productID
改为Where ID
更正确我知道,但他使用的是字段名productID,所以我给了他。