Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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_Html_Mysql - Fatal编程技术网

Php 要为一行插入的多维数组

Php 要为一行插入的多维数组,php,html,mysql,Php,Html,Mysql,我有三个如下所示的阵列: for ($i = 0, $count = count($ingredientQTY); $i < $count; $i++) { $rows[] = array( 'QTY' => $ingredientQTY[$i], 'measurement' => $measurements[$i], 'name' => $ingredientNAME[$i] ); }

我有三个如下所示的阵列:

for ($i = 0, $count = count($ingredientQTY); $i < $count; $i++) {
   $rows[] = array(
       'QTY'         => $ingredientQTY[$i],
       'measurement' =>  $measurements[$i],
       'name'        => $ingredientNAME[$i]
   );
}
ingredientQTY是每行的第一个输入框,measurements是每行的选择/下拉框,ingredientsNAME是每行的最后一个输入框。如您所见,可以有无限多个ingredientQTY、ingredientNAME和度量值

当我将它们发送到我的php脚本时,数据以如下数组形式存在:

IngredientQTY
(
[0]=>5//第一行
[1] =>5//下一行的值
)   
测量
(
[0]=>Bunch//第一行
[1] =>Bunch//下一行的值
)   
IngCreditName
(
[0]=>5//第一行
[1] =>5//下一行的值
)
我正试图将它们上传到一个名为“配料”的表中,该表有3列:
ingredientNAME
ingredientQTY
,和
度量值

在我的php脚本中,我将它们组合成一个多维数组,该数组被分配给
$ingredientsROW

foreach($\u发布为$key=>$value){
$value=$this->input->post($key);
$IngreditQty=$this->input->post('IngreditQty');
$measurements=$this->input->post('measurements');
$IngreditName=$this->input->post('IngreditName');
$ingredientsROW[]=数组($ingredientQTY$MEATURES$ingredientNAME);
打破
}
我的问题是:如何将所有表单元素的第一行(即第一个
ingredientQTY
、第一个
measurements
下拉列表和第一个
ingredientNAME
分组并插入到一行中


我能想到的唯一方法是在我插入的地方插入一个insert,然后查找我刚才插入的行的id,并使用两个mysql更新为同一行输入,但我非常确定有更有效的方法来实现这一点。

迭代数据并创建如下数组:

for ($i = 0, $count = count($ingredientQTY); $i < $count; $i++) {
   $rows[] = array(
       'QTY'         => $ingredientQTY[$i],
       'measurement' =>  $measurements[$i],
       'name'        => $ingredientNAME[$i]
   );
}
for($i=0,$count=count($ingredientQTY);$i<$count;$i++){
$rows[]=数组(
“数量”=>$ingredientQTY[$i],
“度量”=>$measurements[$i],
“名称”=>$IngreditName[$i]
);
}

使用此数组,您可以非常轻松地创建insert并插入整行。

遍历数据并创建如下数组:

for ($i = 0, $count = count($ingredientQTY); $i < $count; $i++) {
   $rows[] = array(
       'QTY'         => $ingredientQTY[$i],
       'measurement' =>  $measurements[$i],
       'name'        => $ingredientNAME[$i]
   );
}
for($i=0,$count=count($ingredientQTY);$i<$count;$i++){
$rows[]=数组(
“数量”=>$ingredientQTY[$i],
“度量”=>$measurements[$i],
“名称”=>$IngreditName[$i]
);
}

使用此数组,您可以非常轻松地创建insert并插入整行。

是否需要此工作

foreach($_POST['IngredientQTY'] as $index=>$qty)
    mysql_query("insert into ingredients ".
                 "set IngredientQTY='".addslashes($qty)."'".
                 ", measurements ='".addslashes($_POST['measurements'][$index])."'".
                 ", ingredientNAME ='".addslashes($_POST['ingredientNAME'][$index])."');

你喜欢这个工作吗

foreach($_POST['IngredientQTY'] as $index=>$qty)
    mysql_query("insert into ingredients ".
                 "set IngredientQTY='".addslashes($qty)."'".
                 ", measurements ='".addslashes($_POST['measurements'][$index])."'".
                 ", ingredientNAME ='".addslashes($_POST['ingredientNAME'][$index])."');

“添加成分”按钮是否使用JavaScript?在第一个循环中中断自己的foreach循环在我看来不太正确……请注意,选择框不可单击。(Linux上的FF)@FritsvanCampen是的,那部分已经开始工作了。如果代码有帮助的话,我可以发布代码?这不关我的事,但我看不出在这种情况下调用表“配料”有什么意义。“库存”我可以理解,但“配料”?不,我不明白。你在“添加配料”中使用JavaScript吗按钮?一个foreach循环在第一个循环中中断,我觉得它不太正确……请注意,选择框是不可点击的。(Linux上的FF)@FritsvanCampen是的,那部分已经开始工作了。如果代码有帮助的话,我可以发布代码?这不关我的事,但我看不出在这种情况下称表为“配料”有什么意义。“库存”我可以理解,但“配料”不,我不明白。是的,那也应该有效。请记住使用
mysqli_函数而不是
mysql\u
,因为后者已被弃用。使用mysql时,您还可以使用
mysqli\u escape\u string()
代替
addslashes()
。是的,这也应该有效。请记住使用
mysqli\uu
函数,而不是
mysql\u
,因为后者已被弃用。使用mysql时,您也可以使用
mysqli\u escape\u string()
代替
addslashes()