PHP MYSQL Очистить данные корзины из базы данных, если проверка прошла успешно - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь очистить / удалить данные корзины из моей базы данных, если проверка прошла успешно.

это форма на моем сайте enter image description here

и это процесс ПРОДОЛЖИТЬ К ПРОВЕРКЕ КНОПКУ

<?php
function emptyCart(){
    // delete query
    $cID = $_SESSION['cID'];
    $query = "DELETE FROM cart WHERE customer_id = $cID";
    $stmt = $this->conn->prepare($query);
 
    if($stmt->execute()){
        return true;
    }
 
    return false;
}

if (isset($_POST['checkout-submit'])) {
    $cID = $_POST['customer_id'];
    require 'dbh.inc.php';

    $order_Fname = mysqli_real_escape_string($conn, $_POST['order_Fname']);
    $order_Lname = mysqli_real_escape_string($conn, $_POST['order_Lname']);
    $order_name = $order_Fname .' '. $order_Lname;

    $order_number = 'PSAU000';

    $order_phone = mysqli_real_escape_string($conn, $_POST['order_phone']);
    $order_email = mysqli_real_escape_string($conn, $_POST['order_email']);

    $order_Addrs = mysqli_real_escape_string($conn, $_POST['order_Addrs']);
    $order_Addrs2 = mysqli_real_escape_string($conn, $_POST['order_Addrs2']);
    $pro = mysqli_real_escape_string($conn, $_POST['pro']);
    $mun = mysqli_real_escape_string($conn, $_POST['mun']);
    $bar = mysqli_real_escape_string($conn, $_POST['bar']);
    $order_address = $order_Addrs .', '. $order_Addrs2 .', '. $pro .', '. $mun .', '. $bar;
    
    $sql = "INSERT INTO orders (order_number, order_name, order_phone, order_email, order_address, order_date)
    VALUES ('$order_number','$order_name','$order_phone','$order_email','$order_address', NOW())";

    if ($conn->query($sql) === TRUE) {
        $msg1 = "Item-Ordered-Succesfully.";
        header("Location: ../checkout.php?msg=$msg1");
        emptyCart();
        exit();
    } else {
        $msg2 = "Please-try-again.";
        header("Location: ../checkout.php?msg=$msg2");
        exit();
    }
    
}
else {
    header ("Location: ../index.php");
    exit();
}

этот процесс вставит значение формы в ТАБЛИЦУ ЗАКАЗОВ , но в корзине все еще есть продукт.

1 Ответ

0 голосов
/ 01 февраля 2019

Таким образом, я смог удалить данные в моем столбце CART, когда проверка прошла успешно, добавив несколько запросов в мой $ sql.

$sql = "INSERT INTO orders (order_number, order_name, order_phone, order_email, order_address, order_date)
VALUES ('$order_number','$order_name','$order_phone','$order_email','$order_address', NOW()); DELETE FROM cart WHERE customer_id = $cID";

и изменение этого кода из

if ($conn->query($sql) === TRUE) {

в

if ($conn->multi_query($sql)) {

<?php

if (isset($_POST['checkout-submit'])) {
    $cID = $_POST['customer_id'];
    require 'dbh.inc.php';

    $order_Fname = mysqli_real_escape_string($conn, $_POST['order_Fname']);
    $order_Lname = mysqli_real_escape_string($conn, $_POST['order_Lname']);
    $order_name = $order_Fname .' '. $order_Lname;

    $order_number = 'PSAU000';

    $order_phone = mysqli_real_escape_string($conn, $_POST['order_phone']);
    $order_email = mysqli_real_escape_string($conn, $_POST['order_email']);

    $order_Addrs = mysqli_real_escape_string($conn, $_POST['order_Addrs']);
    $order_Addrs2 = mysqli_real_escape_string($conn, $_POST['order_Addrs2']);
    $pro = mysqli_real_escape_string($conn, $_POST['pro']);
    $mun = mysqli_real_escape_string($conn, $_POST['mun']);
    $bar = mysqli_real_escape_string($conn, $_POST['bar']);
    $order_address = $order_Addrs .', '. $order_Addrs2 .', '. $pro .', '. $mun .', '. $bar;
    
    
    $sql = "INSERT INTO orders (order_number, order_name, order_phone, order_email, order_address, order_date)
    VALUES ('$order_number','$order_name','$order_phone','$order_email','$order_address', NOW()); DELETE FROM cart WHERE customer_id = $cID";

    // $sql. = "DELETE FROM cart WHERE customer_id = $cID"; 

    if ($conn->multi_query($sql)) {
        $msg1 = "Item-Ordered-Succesfully.";
        header("Location: ../checkout.php?msg=$msg1");
        exit();
    } else {
        $msg2 = "Please-try-again.";
        header("Location: ../checkout.php?msg=$msg2");
        exit();
    }
    
}
else {
    header ("Location: ../index.php");
    exit();
}

спасибо за предыдущие комментарии, я постараюсь изучить эти PDO и о внедрении sql.

...