2012-07-12 55 views
0

您好我试图从jQuery动态数组发布到PHP到MySQL 我从jQuery获取数据并能够序列化数据 PHP采取变量,和数组 ,但是当我尝试传递我的插入的变量,并根据我把它放在foreach()我要么只有最后一个数组插入到数据库或 多次插入的一切(即:name1 ,prob1,date1 name1,prob1,date2等)。 $ name,$ problem,$ timedate作为jQuery数组发布。从jQuery动态多维数组传递到PHP并插入到数据库

在这个例子中

我只得到了数组的最后一个

<?php 
$name = $_POST['name']; 
$problem = $_POST['problem']; 
$timedate = $_POST['timedate']; 
$con = mysql_connect("localhost","wayko","b4v0e1jj"); 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db("joinus", $con); 
$seriname = mysql_real_escape_string(serialize($name)); 
$seriprob = mysql_real_escape_string(serialize($problem)); 
$seritd = mysql_real_escape_string(serialize($timedate)); 
foreach($name as $valname){ 
foreach($problem as $valprob){ 
foreach($timedate as $valtd){ 
} 
} 
} 
$sql="INSERT INTO roomchart (Name,TimeDate,Problem) 
VALUES 
('$valname','$valtd','$valprob')"; 
echo $sql; 

if (!mysql_query($sql,$con)) 
{ 
die('Error: ' . mysql_error(). "Actual query: " . $sql); 
} 

mysql_close($con); 
?> 

在这个例子中,我得到了相同数据的多个刀片,以便插入3成为9个

foreach($name as $valname){ 
foreach($problem as $valprob){ 
foreach($timedate as $valtd){ 
$sql="INSERT INTO roomchart (Name,TimeDate,Problem) 
VALUES 
('$valname','$valtd','$valprob')"; 
echo $sql; 
} 
} 
} 

什么想法?

回答

0

这就是foreach的工作原理。在你的第一个例子中,你的三个嵌套的foreach循环没有任何内容,所以PHP只是循环到这三个数组中的每一个的最后一个元素。然后,当你执行你的SQL语句时,你只做了一次 - 用这三个数组中的每一个的最后一个元素。

对于第二个示例,您将$name的每个元素与$problem的每个元素进行匹配,并将每个元素与$timedate中的每个元素进行匹配。因此,假设每个数组中有3个元素,那么您已经从这三个数组中取得了3x3x3 = 27个元素的不同组合(然后将这些组合中的每一个组合到您的数据库中)。

我假设你有相同大小的3个数组,并且要与$problem[1]$problem[0]配对$name[0]与,$name[1]$timedate[1]等假设你的阵列只是(在前面的句子等)自增键,你可以使用:

foreach ($name as $key => $valname) { 
    $sql = "INSERT INTO roomchart (Name, TimeDate, Problem) 
    VALUES ('$valname', '$timedate[$key]', '$problem[$key]')"; 
    echo $sql; 
} 

这会给你适当的配对你想要的。

编辑编辑:最后编辑不起作用。使用前面的代码。

+0

我只得到最后一个:( – user1521093 2012-07-12 15:23:20

+0

除非我知道你的数组结构,否则我不能给你提供太多的帮助。你能发表你的三个数组的var_dump吗? – Palladium 2012-07-12 15:24:10

+0

这就是数组是动态的取决于从jQuery传递了多少数据 – user1521093 2012-07-12 15:48:45