2014-01-08 5 views
0

Im пытается вставить данные в моем db. Это должно выглядеть примерно так -вложенный цикл foreach в php для запроса

 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

Где и как вы определяли $ sid, $ qid и $ aid? – Aioros

+0

Где $ sid, $ qid и $ help? – Goikiu

+0

@Aioros отредактировал мой вопрос. – user983983

ответ

-1

Вам нужно 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.

+1

Кажется, что $ help устанавливается переменной $ _GET ['aid']. – Ambidex

+0

Ах, да, я пропустил это. – ThaMe90

Смежные вопросы