我试图在我的数据库中插入数据。看起来应该是这样的 -
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
现在它插入这样的东西 -
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
我一直在打它很长时间。如果有人能够对此有所了解,请告诉我。这是我的代码 -
$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();
}
}
答案 0 :(得分:-1)
你需要3个foreach循环:1个用于$ adata,1个用于$ sdata& $ for 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();
}
}
}
我认为你还有$ adata设置,如$ sdata& $ Q数据。