在更新数据库之前,如何$ _GET id和true

时间:2017-11-12 08:43:19

标签: php sql-update

我真的不知道如何解释我的问题,但我有需要。如何在update之前将警告显示到数据库中。

示例:

<?php

  #Get id and yes before update waring code
if (isset($_GET["acept"])) {
    $acept = $_GET["acept"];
} else {
    $acept = " ";
}

if ($acept == "update") {
    if (isset($_GET["yes"]) & $_GET["yes"] == true) {
        $id = (int)$_GET["id"];
        $query = mysqli_query($conn, "update users set balance='$redut' where id='$id'");
        if ($query) {
            echo " Successfull";
        } else {
            echo "retry";
        }
        exit();
    }

    $id = (int)$_GET["id"];
    echo "<div class='topnav'>System Warning</div><div class='msg'>Are You Sure ?</div><div class='gap'></div><div class='button'><a href='?acept=update&yes=true&id=$idd'><font color='red'>Yes</font></a> | <a href='user.php'>No</a></div>";
}

这是我的完整代码,我在尝试在更新到数据库之前显示警告

<?php
include_once 'init.php';

$error = false;

// check if form is submitted

if (isset($_POST['book'])) {
    $book = mysqli_real_escape_string($conn, $_POST['book']);
    $action = mysqli_real_escape_string($conn, $_POST['action']);
    if (strlen($book) < 6) {
        $error = true;
        $book_error = "booking code must be alist 6 in digit";
    }

    if (!is_numeric($book)) {
        $error = true;
        $book_error = "Incorrect booking code";
    }

    if (empty($_POST["action"])) {
        $error = true;
        $action_error = "pick your action and try again";
    }

    if (!$error) {
        if (preg_match('/(check)/i', $action)) {
            echo "6mameja";
        }

        if (preg_match('/(comfirm)/i', $action)) {
            if (isset($_SESSION["user_name"]) && (trim($_SESSION["user_name"]) != "")) {
                $username = $_SESSION["user_name"];
                $result = mysqli_query($conn, "select * from users where username='$username'");
            }

            if ($row = mysqli_fetch_array($result)) {
                $idd = $row["id"];
                $username = $row["username"];
                $id = $row["id"];
                $username = $row["username"];
                $ip = $row["ip"];
                $ban = $row["validated"];
                $balance = $row["balance"];
                $sql = "SELECT `item_name` , `quantity` FROM `books` WHERE `book`='$book'";
                $query = mysqli_query($conn, $sql);
                while ($rows = mysqli_fetch_assoc($query)) {
                    $da = $rows["item_name"];
                    $qty = $rows["quantity"];
                    $sqll = mysqli_query($conn, "SELECT * FROM promo WHERE code='$da' LIMIT 1");
                    while ($prow = mysqli_fetch_array($sqll)) {
                        $pid = $prow["id"];
                        $price = $prow["price"];
                        $count = 0;
                        $count = $qty * $price;
                        $show = $count + $show;
                    }
                }

                if ($show < $balance) {
                    echo "you cant buy here";
                    exit();
                } elseif ($show > $balance) {
                    $redut = $balance - $show;
        #display the warning before updating into daase         if (isset($_GET["acept"])) {
                        $acept = $_GET["acept"];
                    } else {
                        $acept = " ";
                    }

                    if ($acept == "update") {
                        if (isset($_GET["yes"]) & $_GET["yes"] == true) {
                            $id = (int)$_GET["id"];
                            $query = mysqli_query($conn, "update users set balance='$redut' where id='$id'");
                            if ($query) {
                                echo " Successfull";
                            } else {
                                echo mysql_error();
                            }

                            exit();
                        }

                        $idd = (int)$_GET["id"];
                        echo "<div class='topnav'>System Warning</div><div class='msg'>Are You Sure ?</div><div class='gap'></div><div class='button'><a href='?acept=update&yes=true&id=$idd'><font color='red'>Yes</font></a> | <a href='user.php'>No</a></div>";
                    }
                }
            } else {
                $errormsg = "Error in registering...Please try again later!";
            }
        }
    }
}

?>
    <form role="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="booking">
    <fieldset>
    <legend>Check Booking</legend>

    <div class="form-group">
    <label for="name">Username</label>
    <input type="text" name="book" placeholder="Enter  Username" required value="<?php if($error) echo $book; ?>" class="form-control" />
    <span class="text-danger"><?php if (isset($book_error)) echo $book_error; ?></span>
    </div>
    <input type="submit" name="booking" value="Sign Up" class="btn btn-primary" />
    <table><input type="radio" name="action" value="comfirm" <?php if(isset($_POST['action']) && $_POST['action']=="comfirm") { ?>checked<?php  } ?>> 
    <input type="radio" name="action" value="check" <?php if(isset($_POST['action']) && $_POST['action']=="check") { ?>checked<?php  } ?>> Check booking <span class="text-danger"><?php if (isset($action_error)) echo $action_error; ?></span>
    </div></table>

我真的不知道代码出了什么问题,但是更新前的预期警告没有显示,数据库也没有更新。非常感谢。

2 个答案:

答案 0 :(得分:1)

if (isset($_GET["yes"]) & $_GET["yes"] == true) {

将此更改为

if (isset($_GET["yes"]) && $_GET["yes"] == 'true') {

服务器将GET方法作为字符串。不是布尔

答案 1 :(得分:0)

我真的没有得到你想要显示的警告。如果是用户,则可以使用打印或回显功能。可以回显一个html块,所以:

B

将显示该块。唯一的问题是警告可能不在正确的地方或时间。 或者在js

C

如果waring是为了个人使用php error handeling handeling的构建。

Here是使用php的查询函数的片段。 使用:

abstract class C implements A, B {
    @Override
    public String m1() {
        return "";
    }
}