php中用于查询的嵌套foreach循环
我试图在我的数据库中插入数据。应该是这样的-- 现在它插入了类似这样的内容-- 我绕着它转了很久了。请让我知道是否有人能解释这件事。这是我的密码--php中用于查询的嵌套foreach循环,php,sql,foreach,nested-loops,Php,Sql,Foreach,Nested Loops,我试图在我的数据库中插入数据。应该是这样的-- 现在它插入了类似这样的内容-- 我绕着它转了很久了。请让我知道是否有人能解释这件事。这是我的密码-- 您需要3个foreach循环:1个用于$adata,1个用于$sdata,1个用于$qdata $sql='insert into assignment_answers (a_id, s_id, q_id) values (:aid, :sid, :qid)'; $command1=$connecti
您需要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。您在哪里以及如何定义$sid、$qid和$aid?$sid、$qid和$aid在哪里?@Aioros编辑了我的问题。就您的代码范围而言,这里没有可疑之处。(除了可怕的未验证的$GET var)$sdata和$qdata包含什么?在不知道它们包含什么的情况下无法调试。@Ambidex我编辑了我的问题,似乎$aid是由一个熟悉的$GET['aid']变量设置的。啊,是的,我错过了那个变量。
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();
}
}
$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();
}
}
}