簡體   English   中英

在PHP中嵌套的foreach循環進行查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM