将带有问题和答案的数组存储到数据库中

时间:2018-11-20 11:31:20

标签: php mysql sql arrays database

我有以下可以动态添加的数组(多个类别和属于该类别的多个问题),但是我正在努力将其添加到数据库中。

这是数组如何显示的示例:

Array
(
    [title] => lijsttitle
    [Category name] => Array
        (
            [0] => Question 1
            [1] => Question 2
        )

    [Category name 2] => Array
        (
            [0] => Question1
        )

)

我删除了title using array_shift我的代码,如下所示:

$arr = $_POST['lijst'];

$companyid = $_POST['companyid'];

$store = [];

// pull off first arr element
$title = array_shift($arr);
// save title to store
$store['title'] = $title['name'];

$currCat = '';
foreach($arr as $a) {
  $val = $a['value'];
  // handle category
  if($a['name'] == 'category[]') {
    // save cat name
    $currCat = $val;
    // init questions array
    $store[$currCat] = [];
  }
  else {
    // add question to question array
    $store[$currCat][] = $val;
  }
}

我首先在template表中插入问题列表的标题,但是我还有另外两个表,一个用于我的问题,另一个用于我的类别。

// 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);

我知道我可以将使用其ID的用户与最后插入的ID连接起来。但是,如何将所有类别名称插入category表中,而对于questions表中的问题也是如此?

我不确定如何从我的foreach循环中获取这些值。

因此,首先插入一个类别名称,然后在插入所有属于该类别的问题之后立即插入category_id作为最后插入的ID(所插入类别的ID)。

我尝试打印/填充多个变量,但不确定如何获得所需的结果。

0 个答案:

没有答案