Почему на моей странице order_save есть логическая ошибка? - PullRequest
0 голосов
/ 18 апреля 2020

Я делаю сайт, который работает как интернет-магазин. Таким образом, он должен работать следующим образом: пользователь регистрирует учетную запись, затем происходит вход, затем он выбирает название продукта, который он хотел бы заказать на странице заказа, а также количество этого продукта, и он делает некоторый комментарий, содержащий его дополнительные пожелания или особые предпочтения относительно заказа. Затем заказ сохраняется в базе данных, теперь администратор может войти в систему и просмотреть детали заказа.

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

Это порядок. php код:

<head>
<title>order form</title>
<meta charset="UTF-8">
</head>

<body>

<div id="main">
<center>
<h3>order form<br></h3>
<form action="order_save.php" method="POST">
    <br>
    <table >
        <tr>
            <td>Product</td>
            <td>

            <?php
            include('dbconnect.php'); 
            $charset="utf8";
            $result=mysqli_query($db,"SELECT productid,productname FROM product_details"); 
            echo "<select name=productname>";
            while($row=mysqli_fetch_array($result))
                               {
                                   echo "<option value={$row['productid']}>{$row['productname']}
                                   </option>";
                                }
                echo"</select>";
            ?> 
            </td>
        </tr>

        <tr>
            <td>Quantity</td>
            <td>
                <input name="quantity" type="number" size="3"  required>
            </td>
        </tr>
        <tr>
            <td>comment</td>
            <td><input name="comment" type="text" required></td>
        </tr>
    </table>
    <a><input type="submit" name="submit" value=" Make an order"></a>
</form>

</center>
</div>
</body>
</html>

Это порядок_сохранения. php код:

$charset="utf8";
session_start(); 
include ("dbconnect.php"); 
if (isset($_POST['productname'])) 
    { 
        $productid = $_POST['productname']; 
        if ($productid == '') 
            { 
                unset($productid);
            } 
    } 
if (isset($_SESSION['user']))
{
$user = $_SESSION['user'];
if ($user== '')
{
unset($userid);
}
}

if (isset($_POST['comment'])) 
    { 
        $comment = $_POST['comment']; 
        if ($comment == '') 
            { 
                unset($comment);
            } 
    } 

if (isset($_POST['quantity'])) 
    { 
        $quantity = $_POST['quantity']; 
        if ($quantity == '') 
          {
             unset($quantity);
           } 
    } 


$result = mysqli_query($db,"SELECT product_details.productid, oriflame_customers.CustomerID 
FROM product_details, oriflame_customers WHERE product_details.productid='$productid' and oriflame_customers.CustomerID='$user'"); 
$myrow = mysqli_fetch_array($result);
$productid=$myrow['productid'];
$result2 = mysqli_query($db,"INSERT INTO order_details(CustomerID, productid, comment, quantity) 
VALUES ('$user','$productid','$comment', '$quantity')");
  if ($result2=='TRUE')
      {  
          echo "Order was accepted";
      } 
      else 
      {  
         echo "Error occured";  
      }
?>

Таким образом, после того, как я пытаюсь разместить заказ, хотя название продукта, количество и комментарий введены правильно, сайт отображает сообщение: «Произошла ошибка»).

Возможно, проблема в базе данных, поэтому есть таблицы базы данных:

Это таблица oriflame_customers
Это таблица order_details
Это таблица product_details
Отношения между таблицами

PS: productid не увеличивается автоматически, потому что я загружаю информацию о продукте, включая productid, вставляя их в таблицу product_details. PSS: cp1251_general_ci указан в некоторых местах базы данных, потому что эти значения будут введены на русском языке и должны отображаться правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...