[英]nested foreach loop in php for query
Im trying to insert data in my db. 我试图在我的数据库中插入数据。 It should look something like this --
它应该看起来像这样-
a_id=1 s_id=1 q_id=1
a_id=1 s_id=1 q_id=2
a_id=1 s_id=2 q_id=1
a_id=1 s_id=2 q_id=2
right now it inserts something like this -- 现在它插入这样的东西-
a_id=1 s_id=1 q_id=null
a_id=1 s_id=2 q_id=null
a_id=1 s_id=1 q_id=1
a_id=1 s_id=1 q_id=2
a_id=1 s_id=2 q_id=1
a_id=1 s_id=2 q_id=2
I have been beating my head around it for quite a long time. 很长时间以来,我一直在跳动。 Please let me know if some one can shed some light on this.
请让我知道是否有人可以对此有所阐明。 Here's my code --
这是我的代码-
$aid=$_GET['id'];
$sdata=XYZ::model()->findAll('a_id=:aid',array(':aid'=>$id));
$qdata=ABC::model()->findAll('a_id=:aid',array(':aid'=>$id));
$sql='insert into assignment_answers
(a_id, s_id, q_id)
values (:aid, :sid, :qid)';
$command1=$connection->createCommand($sql);
foreach($sdata as $sd)
{
foreach($qdata as $qd)
{
$sid=$sd->id;
$command1->bindParam(":sid",$sid,PDO::PARAM_STR);
$qid=$qd->id;
$command1->bindParam(":qid",$qid,PDO::PARAM_STR);
$command1->bindParam(":aid",$aid,PDO::PARAM_STR);
$command1->execute();
}
}
You need 3 foreach loops: 1 for $adata, 1 for $sdata & 1 for $qdata. 您需要3个foreach循环:1个用于$ adata,1个用于$ sdata和1个用于$ qdata。
$sql='insert into assignment_answers
(a_id, s_id, q_id)
values (:aid, :sid, :qid)';
$command1=$connection->createCommand($sql);
foreach($adata as $ad)
{
foreach($sdata as $sd)
{
foreach($qdata as $qd)
{
$command1->bindParam(":aid",$ad->id,PDO::PARAM_STR);
$command1->bindParam(":sid",$sd->id,PDO::PARAM_STR);
$command1->bindParam(":qid",$qd->id,PDO::PARAM_STR);
$command1->execute();
}
}
}
I assumed you also have a $adata set like $sdata & $qdata. 我假设您还有$ adata集,例如$ sdata和$ qdata。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.