Оператор SQL не вставляет данные в базу данных - PullRequest
0 голосов
/ 03 марта 2019

По сути, я пытаюсь заставить пользователя отправить свой заказ в мою базу данных через форму.Я могу взять c_id (customer_id) из php-кода в верхней части страницы, поэтому в этом нет ничего плохого.

Это мой HTML-код для моей формы.

                       <form action="tshirtorder.php" method="post" enctype="multipart/form-data"><!-- form Begin -->

                        <div class="form-group"><!-- form-group Begin -->

                           <label>Design Image</label>

                           <input type="file" name="t_image" class="form-control form-height-custom" required>
                       </div>
                       <div class="form-group"><!-- form-group Begin -->

                           <label>Design Name</label>

                           <input type="text" class="form-control" name="t_name" value="Custom Design" disabled>

                       </div><!-- form-group Finish -->

                       <div class="form-group"><!-- form-group Begin -->

                           <label>Quantity</label>

                           <input type="text" class="form-control" name="t_qty" required>

                       </div><!-- form-group Finish -->

                       <div class="form-group"><!-- form-group Begin -->

                           <label>Size</label>

                           <input type="text" class="form-control" name="t_size" required>

                       </div><!-- form-group Finish -->


                       <div class="text-center"><!-- text-center Begin -->

                          <a href="torder.php?c_id=<?php echo $customer_id ?>"><button type="submit" name="tsubmit" class="btn btn-primary">

                           <i class="fa fa-user-md"></i> Send Message

                              </button></a>

                       </div><!-- text-center Finish -->

                   </form><!-- form Finish -->

Ниже мойОператор sql.

<?php

if (isset ($ _ POST ['tsubmit'])) {

$customer_id = $_GET['c_id'];

$t_image = $_FILES['t_image']['name'];

$t_image_tmp = $_FILES['t_image']['tmp_name'];

$t_name = $_POST['t_name'];

$due_amount = "25";

$invoice_no = mt_rand();

$t_qty = $_POST['t_qty'];

$t_size = $_POST['t_size'];

$status = "pending";

$pro_id = "$customer_id + 1";

move_uploaded_file($t_image_tmp,"images/customer/customerdesign/$t_image");

$sub_total = "$t_qty*25";

$insert_tshirt_order = "insert into tshirt_orders (customer_id,due_amount,invoice_no,qty,size,order_date,order_status) values ('$customer_id','$sub_total','$invoice_no','$t_qty','$t_size',NOW(),'$status')";

$run_tshirt_order = mysqli_query($conn,$insert_tshirt_order);

$insert_tpending_order = "insert into tpending_order (customer_id,invoice_no,product_id,qty,size,order_status) values ('$customer_id','$invoice_no','$pro_id','$t_qty','$t_size','$status')";

$run_tpending_order = mysqli_query($conn,$insert_tpending_order);


echo "<script>alert('Your T-Shirt Design has been successfully ordered!')</script>";

echo "<script>window.open('profile.php?t_orders','_self')</script>";

}

?>

В моем распоряжении несколько атрибутовЗаявление sql, которое я хочу автоматически добавить в свою базу данных, например, общая стоимость товара, номер счета, дата и статус.

По какой-то причине он просто не вставляет значения в базу данных, и я довольно долго пробежался по этому предложению, и я не могу понять, в чем дело.Надеюсь найти ответ здесь.Спасибо.

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Я решил свою проблему.Я перекодировал все заявление sql.Для тех, у кого возникла та же проблема, что и у меня, вот мой перекодированный код, может быть, вы можете что-то из меня поработать:)

    <?php 

if (isset ($ _ POST ['tsubmit'])) {

$session_name = $_SESSION['customer_name'];

$select_customer = "select * from customers where customer_name='$session_name'";

$run_customer = mysqli_query($conn,$select_customer);

$row_customer=mysqli_fetch_array($run_customer);

$customer_id= $row_customer['customer_id'];

$t_name = $_POST['t_name'];

$due_amount = 25;

$invoice_no = mt_rand();

$t_qty = $_POST['t_qty'];

$t_size = $_POST['t_size'];

$t_image = $_FILES['t_image']['name'];

$t_image_tmp = $_FILES['t_image']['tmp_name'];

$status = "pending";

$total_amount = $due_amount*$t_qty;

$pro_id = $customer_id + 1;

move_uploaded_file($t_image_tmp,"images/customer/customerdesign/$t_image");

$insert_tshirt_order = "insert into tshirt_orders (customer_id,t_image,t_name,due_amount,invoice_no,qty,size,order_date,order_status) values ('$customer_id','$t_image','$t_name','$total_amount','$invoice_no','$t_qty','$t_size',NOW(),'$status')";

$run_tshirt_order = mysqli_query($conn,$insert_tshirt_order);

$insert_tpending_order = "insert into tpending_order (customer_id,invoice_no,product_id,qty,size,order_status) values ('$customer_id','$invoice_no','$pro_id','$t_qty','$t_size','$status')";

$run_tpending_order = mysqli_query($conn,$insert_tpending_order);

    echo "<script>alert('Your T-Shirt order has been made!')</script>";  
        echo "<script>window.open('profile.php?t_orders','_self')</script>";

}

?>

Также большое спасибо людям, которые пытались мне помочь!Я очень ценю это.

0 голосов
/ 03 марта 2019

mysqli_query () возвращает логический ответ, то есть вы должны его прослушать на случай, если с вашим кодом SQL что-то не так.

Вместо $run_tshirt_order = mysqli_query($conn,$insert_tshirt_order); попробуйте выполнить следующее:

if(!$run_tshirt_order = mysqli_query($conn,$insert_tshirt_order)){
    //If the query returns a boolean FALSE
    die(mysqli_error($conn));
    //die() simply kills the script and outputs a message
    //You should replace it with better error handling
}

Таким образом, если в вашем SQL будет ошибка, вам сообщат об этом.Если вы можете выяснить, в чем заключается ошибка, из сообщения об ошибке, вставьте результаты в свой вопрос, чтобы мы могли посмотреть.

...