我有两个数组来自两个选择的倍数,我想组合它们以将它们存储在 mysql 中
我正在使用 foreach 来浏览其中一个,但我想知道是否可以选择同时浏览并存储它们,到目前为止,这是我使用的代码。
foreach($_POST["dato"] as $Dato) {
foreach($_POST["dato2"] as $Dato2) {
$INuevo = Insertar_Datos("Codigos" ,"`que`,`idcosa`,`1`,`2`" , "'test','$Id_Numero','".$Dato."','".$Dato2."' ");
}
}
问题是我想创建一个循环,首先从第一个数组中读取数据,然后从第二个数组中插入第二个数据,并从第一个数组中插入数据(原则上,一旦我知道了什么,我就没有问题了我必须传递给想要的变量)。例如,假设数据是姓名和姓氏:
名称 = 1
姓氏 = 1 从名字 1
姓氏 = 2 的名字 1
姓氏 = 3 的名字 1
名称 = 2
姓氏 = 名字 2 的 1
姓氏 = 2 的名字 2
姓氏 = 3 的名字 2
以此类推,直到日子结束,只能有两个姓氏或只有一个姓氏。
有可能还是我必须在 foreach 中再做一次 foreach?也许第一个 foreach 中的 for 更好?
在 Insert_Data 函数中我有这个:
function Insertar_Datos() { global $Conectar;
$Parametros = func_get_args();
$InDatos = "INSERT INTO `".$Parametros[0]."` (".$Parametros[1].") VALUES (".$Parametros[2].");";
$RDatos = mysqli_query($Conectar, $InDatos);
if (!$RDatos) { http_response_code(500); print(mysqli_error($Conectar)); } else { http_response_code(200); echo "ok"; }
return $RDatos;
}
并且选择的倍数是这样的:
<select name="dato[]" multiple="multiple">
<option value="1">Numero 1</option>
<option value="2">Numero 2</option>
<option value="3">Numero 3</option>
</select>
<select name="dato2[]" multiple="multiple">
<option value="1">Numero 1</option>
<option value="2">Numero 2</option>
<option value="3">Numero 3</option>
</select>
表的结构将是这样的:
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | int(10) | NO | PRI | NULL | |
| que | varchar(50) | YES | | NULL | |
| idcosa | int(10) | YES | | NULL | |
| 1 | varchar(200)| YES | | NULL | |
| 2 | varchar(200)| YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
我把它从另一张桌子上拿来,它是一个用来识别它来自哪里的数字,但这个数字保存得很好。
问题是,由于某种原因,当 data2 具有多个值时它不起作用,我不知道我有什么问题:_(
要计算
producto cartesiano
两个数组的,您可以使用以下函数:节目
您的代码可能会导致以下结果:
据我了解,您拥有:
$_POST['datos']
并且$_POST['datos2']
您希望将它们组合起来以循环使用它们。好吧,您可以将它们与array_merge()
: http: //php.net/manual/es/function.array-merge.php看看它是否适合你。