Как отправить массив $_SESSION html в бд MySQL
Есть массив $_SESSION["shopping_cart"], он содержит массивы, как бы массив массивов. Нужно взорвать этот на несколько массивов, и при нажатии кнопки нужно отправить их в таблицу MySQl.
if(isset($_POST["send_data"]))
{
$item_array = $_SESSION["shopping_cart"];
function opt($array,$connect)
{
if(is_array($array))
{
foreach($array as $row => $value)
{
$item_name = mysqli_real_escape_string($connect,$value[0]);
$item_price = mysqli_real_escape_string($connect,$value[1]);
$item_qty = mysqli_real_escape_string($connect,$value[2]);
$sql = "INSERT INTO `dlya_povara` (`Название блюда`, `Цена`, `Количество блюд`, ) VALUES ('$item_name','$item_price','$item_qty')";
}
if(mysqli_query($connect, $sql))
{
echo '<script>alert("Регистрация прошла")</script>';
}
else
{
echo '<script>alert("Регистрация не прошла")</script>';
}
}
}
opt($item_array,$connect);
}
Ответы (1 шт):
Автор решения: InDevX
→ Ссылка
Всё-таки, не удержался от ответа.
- Не надо заниматься транслитерацией, и, тем более, называть таблицы и столбцы кириллицей.
// так НЕ НАДО называть:
`dlya_povara` (`Название блюда`, `Цена`, `Количество блюд`)
// условно, так НАДО называть:
`order` (`dish_name`, `price`, `dish_amount`)
// по-хорошему, все блюда надо хранить в отдельной таблице, в заказе указывать id блюда:
`order` (`dish_id`, `amount`)
- В сам вопрос надо добавлять код, а не скриншоты.
- Непосредственно, "решение" поставленной задачи.
function opt($array, $connect)
{
if ( is_array($array) ) {
// инициируем переменную, в которую будет записываться весь запрос
$sql = "INSERT INTO `dishes` (`dish_name`, `price`, `dish_amount`) VALUES ";
foreach ($array as $row => $value) {
// берём item_name с массива
$item_name = mysqli_real_escape_string($connect, $value['item_name']);
// берём item_price с массива
$item_price = mysqli_real_escape_string($connect, $value['item_price']);
// берём item_quantity с массива
$item_qty = mysqli_real_escape_string($connect, $value['item_quantity']);
// "суффикс" к запросу, который добавляет запятую
$suf = $row < count($array)-1 ? ", " : "";
// не перезаписываем (=), а конкатенируем/прибавляем (.=)
// строку запроса + "суффикс" с запятой
$sql .= "('$item_name','$item_price','$item_qty')" . $pre;
}
if ( mysqli_query($connect, $sql) ) {
echo '<script>alert("Регистрация прошла")</script>';
} else {
echo '<script>alert("Регистрация не прошла")</script>';
}
}
}
opt($item_array, $connect);
![Массив $_SESSION["shopping_cart"]](https://i.stack.imgur.com/7a3lD.png)