Я делаю сайт, который работает как интернет-магазин. Таким образом, он должен работать следующим образом: пользователь регистрирует учетную запись, затем происходит вход, затем он выбирает название продукта, который он хотел бы заказать на странице заказа, а также количество этого продукта, и он делает некоторый комментарий, содержащий его дополнительные пожелания или особые предпочтения относительно заказа. Затем заказ сохраняется в базе данных, теперь администратор может войти в систему и просмотреть детали заказа.
Я написал код для всех страниц, и все работает хорошо, за исключением страницы сохранения заказа. По какой-то причине входные данные не могут быть вставлены в таблицы базы данных, поэтому порядок не может быть сохранен.
Это порядок. 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 указан в некоторых местах базы данных, потому что эти значения будут введены на русском языке и должны отображаться правильно.