2016-01-02 2 views
3

Я хочу удалить данные на моем столе cart после того, как клиент решил проверить. В основном причина, по которой я хочу, чтобы она удалялась из таблицы, - это сброс всех итоговых элементов и общей цены.Удаление строк данных после оформления заказа

До сих пор, я попытался добавить это после $run_sales = mysqli_query($con, $insert_sales);:

if($run_sales){ mysqli_query($con, "delete * from cart where orderId = '$sales_itemid'"); }

Я представил заявление еще, что бы показать ошибку, но кажется, что это не делает ошибку. Но строка не удаляется. Где и что мне нужно добавить для этого кода?

<?php 
    $con = mysqli_connect("localhost","root","","ecommerce"); 
     if(isset($_SESSION['customer_email'])){ 
     $user_login = "select customer_id from customer where customer_email ='" 
     . $_SESSION['customer_email'] . 
      "'" or die(mysqli_error($con)); 
     $run_login = mysqli_query($con, $user_login); 
      while($p_price=mysqli_fetch_array($run_login)){ 

      $_SESSION['user_id'] = $p_price['customer_id']; 
      } 
        $join_query = "select customer.customer_email, item.ItemId, item.ItemPrice, cart.qty 
        from customer, item, cart 
        where customer.customer_email = '" . $_SESSION['customer_email'] . "' AND item.ItemId = cart.orderId"; 

        $run_join = mysqli_query($con, $join_query); 
        //checks error if(!$run_join) 
        if(!$run_join){ 
         printf("ERROR: %s\n", mysqli_error($con)); 
         exit(); 
        } //END OF if(!$run_join) 

        //insert every type of item the customer has bought. 
        while($row_boat = mysqli_fetch_array($run_join)){ 

         $sales_email = $_SESSION['customer_email']; 
         $sales_itemid = $row_boat['ItemId']; 
         $sales_itemprice = $row_boat['ItemPrice']; 
         $sales_qty = $row_boat['qty']; 
         $sales_total = $sales_itemprice * $sales_qty; 
         //$sales_date = 
         $insert_sales = "insert into sales (customer_email, ItemId, ItemPrice, Quantity, Total) 
         values ('$sales_email', '$sales_itemid', '$sales_itemprice', '$sales_qty', '$sales_total')"; 

         $run_sales = mysqli_query($con, $insert_sales); 
         if($run_sales){ 
          mysqli_query($con, "delete * from cart where orderId = '$sales_itemid'"); 
         } 
         else 
         { 
          printf("ERROR: %s\n", mysqli_error($con)); 
         exit(); 
         } 
        } 
       } 
     //echo $_SESSION['user_id']; 
     ?> 
+0

Является ли ваш 'INSERT' работает как вы ожидаете? Можете ли вы запросить новые строки в MySQL? Каков результат этого вызова: 'mysqli_query ($ con," delete * from cart where orderId = '$ sales_itemid' ");'? В случае сбоя 'mysqli_query' вернет' FALSE'. –

+0

Да, мой запрос на ввод работает отлично. И результат 'mysqli_query ($ con," delete * from cart where orderId = '$ sales_itemid' ");' ничего. Я попытался распечатать, вызывает ли он ошибку, но это не было – Jerlon

ответ

0

Попробуйте следующее:

if($run_sales == TRUE){ 
         mysqli_query($con, "delete * from cart where orderId = '$sales_itemid'"); 
        } 

Или:

if($run_sales){ 
$count = mysqli_affected_rows($mysqli); 
if($count>0){ 
    mysqli_query($con, "delete * from cart where orderId = '$sales_itemid'"); 
} 
else{ 

Если все это не работает, попробуйте это:

if($run_sales->num_rows > 0){ 
+0

Где я должен поместить это в код? – Jerlon

+0

Замените следующий код: $ run_sales = mysqli_query ($ con, $ insert_sales); и т.д... –

Смежные вопросы