Я начал получать массивы и не совсем понял, как это работает. Я привык работать с функциями explode/implode, но, хотя массивы облегчили бы мою жизнь в этой части кода. Вот функция называется:Сохранение массива в базе данных sql
function save_event($event_items = NULL) {
include 'connect.php';
$now = date("Y-m-d H:i:s");
$sqla = "
INSERT INTO `event`(`event_items`, `event_entered`)
VALUES ('$event_items','$now')";
$resulta = mysqli_query($link, $sqla);
if(!$resulta)
{
echo '<br/>An error occurred while inserting your data. Please try again later.<br/>';
}
else
{ echo 'this is the variable to be stored:<br/>';
print_r($event_items);
$sql = "SELECT * FROM `event` WHERE event_entered = '".$now."'";
$result = mysqli_query($link, $sql);
if($result)
{ while($row = mysqli_fetch_assoc($result))
{ echo '<br/></br>This is the value of the database:<br/>';
print_r ($row['event_items']);
}
}
}
}
Эта функция печатает:
this is the variable to be stored:
Array([0] => Array ([item] => Powered Speaker [note] => [quantity] => 2 [price] => 200.00 [category] => Audio) [1] => Array ([item] => Wireless Microphone [note] => Lavalier [quantity] => 3 [price] => 175.00 [category] => Audio))
This is the value of the database:
Array
В PhpMyAdmin, все, что я вижу в колонке event_items
слово Array
.
Дополнительная информация: У меня есть таблица под названием «Группы», каждая группа будет иметь один или несколько порядков (другая таблица называется «Заказ»), и каждый заказ будет иметь одно или несколько событий (другая таблица). Наконец, каждое событие будет иметь один или несколько элементов (каждый элемент с соответствующей ценой, количеством, примечанием и категорией), которые хранятся в одном (или многих) столбцах в таблице Event.
Вы не можете просто вставить массив и ожидать, что он будет сохранен так, как вы здесь. Вы можете вернуться к использованию взрыва и взломать или нормализовать схему и сохранить одно значение для каждой строки. – mzedeler
'array' означает, что переменная, которая должна быть сохранена, была массивом, а не строкой, как и должно быть. Поэтому проблема заключается в запросе 'INSERT'. Рассмотрим использование 'serialize()' и 'unserialize()'. – Voitcus