#php #sql #mysqli
#php #sql #mysqli
Вопрос:
Этот код корзины берет несколько товаров со страницы магазина и отлично отображает их на этой странице корзины.
Мне интересно, как мне перенести эти переменные корзины в таблицу под названием заказы.
По какой-то причине я застрял, выясняя, как ввести один экземпляр данных в таблицу заказов — если я смогу это выяснить, то должно быть легко ввести несколько записей одновременно.
Я думаю, что это на правильном пути, я повторил приведенные ниже переменные. Но это только повторяет последнюю вещь в корзине.
$name = $product['name'];
$quantity = $product['quantity'];
$productprice = $product['price']
Я тестировал, как ввести эту строку, вставив фиктивные данные из order-process.php , который проверяет, обработана ли кнопка отправки на cart.php .
foreach($_SESSION['shopping_cart'] as $key => $product):
?>
<tr>
<td><?php echo $product['name']; ?></td>
<td><?php echo $product['quantity']; ?></td>
<td>$ <?php echo $product['price']; ?></td>
<td>$ <?php echo number_format($product['quantity'] *
$product['price'], 2); ?></td>
</tr>
<?php
echo $name;
echo $quantity;
echo $total;
$query = "insert into products values('$name','$quantity',
'$total')";
$query_run = mysqli_query($con,$query);
?>
<form method="POST" action="order-process.php" name = "submit "
value = "submit">
</form>
<?php
session_start();
require_once('dbconfig/config.php');
if(isset($_post['submit']))
{
$SQL = "INSERT INTO orders (name, quantity, total) VALUES
('abc','10', '75')";
$result = mysql_query($SQL);
}
?>
Я бы хотел узнать, как вставлять фиктивные данные в эти фиктивные данные,
В идеале я хотел бы выяснить, как извлечь переменные корзины из cart.php и несколько строк вставки для всего, что есть у пользователя в этой корзине.
Комментарии:
1. Используйте
foreach
для вставки нескольких данных2. Дело в том, что я понятия не имею, как это сделать, я получил это как шаблон для изучения php. Моя главная проблема в том, что я не могу вставить поддельную строку в базу данных с помощью order-process.php . Если я могу вставить одну строку, я бы попытался выполнить цикл для каждого.
3. Предупреждение: вы широко открыты для SQL-инъекций и должны действительно использовать параметризованные подготовленные инструкции вместо того, чтобы вручную создавать свои запросы. Они предоставляются PDO или MySQLi . Никогда не доверяйте никаким входным данным, особенно тем, которые поступают со стороны клиента. Даже если ваши запросы выполняются только доверенными пользователями, вы все равно рискуете повредить свои данные .
4. Вы смешиваете
mysql_*
иmysqli_*
функции вместе. Они не могут использоваться друг с другом иmysql_*
больше не существуют в PHP.
Ответ №1:
Я относительно новичок в php, но я уверен, что это достаточно близко к ответу, который я могу придумать.
Вам не нужны два php-файла для обработки товаров из корзины, вы можете вставлять товары в таблицу products на той же странице, что и cart.php . Следующим шагом было бы поместить этот оператор insert в цикл for для переменных из этой корзины, чтобы поместить каждый товар в этой корзине в таблицу products.
<form method="post">
<input type="submit" name="submit" value="submit"/>
</form>
<?php
if(isset($_POST['submit']))
{
$SQL = "INSERT INTO orders (name, quantity, total, orderdate) VALUES ('abcdef', '100', '715', NOW())";
$result = mysqli_query($con, $SQL);
}
?>