У меня есть динамический список, в который люди могут добавлять категории, и для каждой категории они могут добавлять вопросы.
В настоящий момент я сохраняю название всего списка в моей базе данных и категории, обе работают, ноЯ не могу понять, как хранить вопросы.У меня есть они в массиве, так что это не должно быть так сложно, но я не могу заставить его работать.
Это моя структура базы данных:
templates:
id - template id
title - name of list (template)
id_company (company list belongs to, irrelevant for this question)
questioncat:
id - id of category
title - name of category
tid - template id that the category belongs to
questions:
id - question id
question - the actual question
catid - category id that the questions belong to
С кодом, который яВ настоящее время я могу добавить шаблон с категориями, связанными с ним.Я делаю это с кодом ниже:
$conn = new Connection;
$arr = $_POST['lijst'];
$companyid = $_POST['companyid'];
$store = [];
// pull off first arr element
$title = array_shift($arr);
// save title to store
$store['title'] = $title['name'];
// Insert template title and companyid
$inserttemplate = '
INSERT INTO templates (title, id_company) VALUES ("'.$conn->real_escape_string($title["value"]).'","'.$conn->real_escape_string($companyid).'")';
$inserttemplatecon = $conn->query($inserttemplate);
$lastinserted = $conn->inserted_id();
$currCat = '';
foreach($arr as $a) {
$val = $a['value'];
// handle category
if($a['name'] == 'category[]') {
// save cat name
$currCat = $val;
$insertcats = '
INSERT INTO questioncat (title, tid) VALUES ("'.$conn->real_escape_string($currCat).'", "'.$conn->real_escape_string($lastinserted).'")';
$insertcatscon = $conn->query($insertcats);
// init questions array
$store[$currCat] = [];
echo $store[$currCat];
}else {
// add question to question array
$store[$currCat][] = $val;
}
}
Если я распечатываю массив $store
при добавлении некоторых примеров категорий / вопросов, это пример результата:
Array
(
[title] => lijsttitle
[Category 1] => Array
(
[0] => Question 1
[1] => Question 2
[2] => Question 3
)
[Category 2] => Array
(
[0] => Question 1
)
[Category 3] => Array
(
[0] => Question 1
)
[Category 4] => Array
(
[0] => Question 1
[1] => Question 2
)
)
Я попытался повторитьecho $store[$currCat];
чтобы посмотреть, смогу ли я показать вопросы, но это массив, поэтому он просто показывает массив, если я его распечатываю, я вижу только Array()
.
Как я могу добавить вопросы в свою базу данных с помощью длякаждому вопросу правильный идентификатор категории, к которому он принадлежит?
var_dump
из $arr
, как указано ниже:
array(11) {
[0]=>
array(2) {
["name"]=>
string(10) "category[]"
["value"]=>
string(10) "Category 1"
}
[1]=>
array(2) {
["name"]=>
string(10) "question[]"
["value"]=>
string(10) "Question 1"
}
[2]=>
array(2) {
["name"]=>
string(10) "question[]"
["value"]=>
string(10) "Question 2"
}
[3]=>
array(2) {
["name"]=>
string(10) "question[]"
["value"]=>
string(10) "Question 3"
}
[4]=>
array(2) {
["name"]=>
string(10) "category[]"
["value"]=>
string(10) "Category 2"
}
[5]=>
array(2) {
["name"]=>
string(10) "question[]"
["value"]=>
string(10) "Question 1"
}
[6]=>
array(2) {
["name"]=>
string(10) "category[]"
["value"]=>
string(10) "Category 3"
}
[7]=>
array(2) {
["name"]=>
string(10) "question[]"
["value"]=>
string(10) "Question 1"
}
[8]=>
array(2) {
["name"]=>
string(10) "category[]"
["value"]=>
string(10) "Category 4"
}
[9]=>
array(2) {
["name"]=>
string(10) "question[]"
["value"]=>
string(10) "Question 1"
}
[10]=>
array(2) {
["name"]=>
string(10) "question[]"
["value"]=>
string(10) "Question 2"
}
}