Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仍然允许在缺货时购买/php、sql_Php - Fatal编程技术网

仍然允许在缺货时购买/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,所以我给了他。