[英]nested foreach loop in php for query
我試圖在我的數據庫中插入數據。 它應該看起來像這樣-
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();
}
}
您需要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();
}
}
}
我假設您還有$ adata集,例如$ sdata和$ qdata。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.