2015-03-31 81 views
-2
foreach (($_POST['pedimento'] as $value) && ($_POST['observacion'] as $obs)) 
{ 
    $sql1=mysql_query("INSERT INTO pedimento (`error`,`observacion`) VALUES ('$value','$obs')"); 
} 

即时尝试从两个数组中插入数据,有谁知道我怎么能从两个数组同时获取数据,并将它们一起保存在一个sql语句中?你可以一次对两个数组进行初始化吗?

+1

唐我不认为可以这样做。如果你可以发布你到目前为止已经尝试过的代码,究竟哪些工作没有成功,以及你期望输出/最终结果是什么,这将是有帮助的。 – Maximus2012 2015-03-31 16:59:31

回答

-1

请不要在像这样的查询中使用$_POST值!使用PDO或MySQLi移至准备好的语句。

这个有意义的,因为其他的答案假定的唯一方法,是如果阵列是相同的长度,并具有相同的密钥,以便:

foreach ($_POST['pedimento'] as $key => $value) 
{ 
    $obs = $_POST['observacion'][$key]; 
    $sql1 = mysql_query("INSERT INTO pedimento (`error`,`observacion`) 
         VALUES ('$value','$obs')"); 
} 
+0

大声笑,我试图解决这个问题,但从来没有为我工作,但现在它工作很好!,谢谢AbraCadaver! :) – 2015-03-31 17:28:15

0

我会变成你的foreach成一个for循环有一个int计数器:

for($i = 0; $i < array.length; $i++) 
{ 
    $x = arrayOne[$i]; 
    $y = arrayTwo[$i]; 

    $sql1=mysql_query("INSERT INTO pedimento (error,observacion) VALUES ('$x','$y')"); } 
} 

PHP是不是我的强项(而不是由一个长镜头),但我检查到的循环工作。只要数组逻辑与其他语言一样远程工作,上面的语句应该循环遍历两个数组(假设它们的长度相同),并创建一个INSERT语句和它找到的两个值。

+0

只要确保$我永远不会超出数组的范围。 – 2015-03-31 17:06:02

+0

'array.length' ??? – AbraCadaver 2015-03-31 17:07:16

+0

对不起,正如我所说的,PHP并不是我的强项。我假设有某种数组方法可以返回其中的元素数量?此外,它应该是arrayOne.length或arrayTwo.length;不只是阵列。 – 2015-03-31 17:07:51

-1
foreach (array_combine($_POST['pedimento'], $_POST['observacion']) as $value => $val) { 
    echo $value; 
    echo $val; 
} 

这是怎么回事?

+0

如果这两个数组不相等。在这种情况下,会不会损失一些价值? – Maximus2012 2015-03-31 17:05:55

+0

http://php.net/manual/en/function.array-combine.php#111668 – Maximus2012 2015-03-31 17:06:19

+0

此外,如果'pedimento'具有非唯一值,则它们将被覆盖。 – AbraCadaver 2015-03-31 17:12:14

-1
$array1 = array("A","B","C"); 
$array2 = array(1,2,3); 
foreach (array_combine($array1,$array2) as $first => $second) { 
    echo $first." ". $second; 
} 

输出:

A 1B 2C 3 
+0

'$ array1 = array(“A”,“B”,“C”,“B”,“C”);'等等......? – AbraCadaver 2015-03-31 17:13:07

相关问题