简体   繁体   English

选择,插入和更新MySQL表PHP脚本不起作用

[英]Select, Insert and Update MySQL table PHP script not working

I wrote the following code: 我写了以下代码:

<?php
    $servername = "domain";
    $insert = 12345678;
    $username = "user";
    $password = "password";
    $dbname = "database";

// Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    $sql = "SELECT quantity FROM Eshop WHERE id = $insert";
    $result = $conn->query($sql);
    echo $result;
    if ($result > 0) {
        $result = $result + 1;
        $sql2 = "UPDATE Eshop SET quantity = $result WHERE id = $insert";
        if ($conn->query($sql2) === TRUE) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql2 . "<br>" . $conn->error;
        } 
    } else {
        $sql3 = "INSERT INTO Eshop (id, quantity) VALUES ($insert, 1)";
        if ($conn->query($sql3) === TRUE) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql3 . "<br>" . $conn->error;
        }
    }
?>

What I want this script to do is select the quantity where the id is $insert and then if quantity > 0 , add 1 to the quantity and update the quantity , if not insert the id and quantity = 1 into the table. 我想这个脚本做的是选择的quantity ,其中id$insert ,然后,如果quantity > 0 ,加1到quantity和更新quantity ,如果不插入idquantity = 1到表中。 The table has only two fields id(VARCHAR(32)) and quantity(DECIMAL(8,1)) . 该表只有两个字段id(VARCHAR(32))quantity(DECIMAL(8,1)) I tried to do it more general in order to help as many people as possible. 我尝试更笼统地做到这一点,以帮助尽可能多的人。 Could you please help me? 请你帮助我好吗? Thanks in advance. 提前致谢。 NOTE: When I run the script in the browser(after uploading it to the server with the correct username,domain etc.) nothing shows up and I dont even get an error in the console. 注意:当我在浏览器中运行脚本时(使用正确的用户名,域等将其上传到服务器后),没有任何显示,甚至在控制台中也没有出现错误。

You need to extract the result of your query and loop through each row: 您需要提取查询结果并遍历每一行:

<?php
    $servername = "domain";
    $insert = 12345678;
    $username = "user";
    $password = "password";
    $dbname = "database";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    $sql = "SELECT quantity FROM Eshop WHERE id = $insert";
    $result = $conn->query($sql);

    while($row = mysqli_fetch_array($result)) {
        if ($row['quantity'] > 0) {
            $new_quantity = $row['quantity'] + 1;
            $sql2 = "UPDATE Eshop SET quantity = '$new_quantity' WHERE id = '$insert'";
            if ($conn->query($sql2) == TRUE) {
                echo "New record created successfully";
            } else {
                echo "Error: " . $sql2 . "<br>" . $conn->error;
            } 
        } else {
            $sql3 = "INSERT INTO Eshop (id, quantity) VALUES ('$insert', 1)";
            if ($conn->query($sql3) == TRUE) {
                echo "New record created successfully";
            } else {
                echo "Error: " . $sql3 . "<br>" . $conn->error;
            }
        }

    }
?>
    <?php
    $servername = "domain";
    $insert = 12345678;
    $username = "user";
    $password = "password";
    $dbname = "database";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    $sql = "SELECT quantity FROM Eshop WHERE id = $insert";
    $result = $conn->query($sql);

    //check if particular record exists or not
    $count=mysql_num_rows($result);

   if($count>0) // if records exists for the particular id
   {
    while($row = mysqli_fetch_array($result)) {
        if ($row['quantity'] > 0) {
            $new_quantity = $row['quantity'] + 1;
            $update = "UPDATE Eshop SET quantity = '$new_quantity' WHERE id = '$insert'";
            if ($conn->query($update ) == TRUE) {
                echo "New record created successfully";
            } else {
                echo "Error: " . $update . "<br>" . $conn->error;
            } 
        } else {
            $insert = "INSERT INTO Eshop (id, quantity) VALUES ('$insert', 1)";
            if ($conn->query($insert ) === TRUE) {
                echo "New record created successfully";
            } else {
                echo "Error: " . $insert . "<br>" . $conn->error;
            }
        } // else qty is <=0

    } //end while
}
else {
   echo "Records do not exists for that particular id";
 }
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM