Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将数组中的每个数据保存到数据库中_Php_Mysql_Arrays_Pdo - Fatal编程技术网

Php 如何将数组中的每个数据保存到数据库中

Php 如何将数组中的每个数据保存到数据库中,php,mysql,arrays,pdo,Php,Mysql,Arrays,Pdo,我有一个表单,需要在数据库中将其拆分为两个表。tbl_1由每列的单个值组成,然后tbl_2由每列的多个值组成。我知道若我在每列中传递多个数据,我将违反数据库中的规范化。所以我所做的就是把tbl_1和tbl_2联系起来。问题是我不知道如何将数组中的每个值保存到列中。示例分类有4个值,我需要保存在tbl_2中并将其引用到tbl_1。我怎样才能做到这一点?我在用PDO HTML代码段: <input type="text" name="classification[]" placeholder=

我有一个表单,需要在数据库中将其拆分为两个表。tbl_1由每列的单个值组成,然后tbl_2由每列的多个值组成。我知道若我在每列中传递多个数据,我将违反数据库中的规范化。所以我所做的就是把tbl_1和tbl_2联系起来。问题是我不知道如何将数组中的每个值保存到列中。示例分类有4个值,我需要保存在tbl_2中并将其引用到tbl_1。我怎样才能做到这一点?我在用PDO

HTML代码段:

<input type="text" name="classification[]" placeholder="Classification No. 1" />
<input type="text" name="classification[]" placeholder="Classification No. 2" />
<input type="text" name="classification[]" placeholder="Classification No. 3" />
<input type="text" name="classification[]" placeholder="Classification No. 4" />
因此,对于每个值,将创建4行,这些行的id与tbl_1的id相同。应该是这样的:


我只是在演示…试试这样的东西

<?php

$x = 1;
$y = 1;

$classification = array('class1', 'class2');
$area = array('area1', 'area2');
$market = array('market1', 'market2');

$no_of_loop = count($classification); //4

while($no_of_loop)
{
    $query = insert into (`tbl_1_id`, `tbl_2_id`, `Classification`, `Area`, `Market`) values($x, $y, $classification, $area, $market);
$x++;
}
$y++;

mysqli_query($query, $con);

?>
试试看

因此,您可以输入如下内容:

<input type="text" name="data[classification][]" placeholder="Classification No. 1" />
<input type="text" name="data[area][]" placeholder="Area No. 1" />
<input type="text" name="data[market_value]" placeholder="Market Value No. 1" />

为什么不使用多维数组?。。。数据[1][1]…等等如果页面显示分类数组,那么数据数组是什么?此外,我认为您只需要首先在tbl_1中插入,获取id,然后在tbl_2中插入其他值
 $data = 'your array here whatever you receive using GET/POST';

for($i=0; $i<count($data['classification']); $i++){
  $sql = INSERT INTO (`tbl_1_id`, `tbl_2_id`, `classification`, `area`, `market_value`) VALUES (`auto_increment_id`, `value_of_table1`, $data['classification'][$i], $data['area'][$i], $data['market_value'][$i]);
}