2011-09-30 18 views
0

我有存儲的問題和答案的兩個表,如下腳本用於獲取序列化的答案,並將反序列化每個它到一個數組如下:PHP的foreach值分配到while循環行

while($ans_row = mysql_fetch_array($q_chkans)){ 
$answer = unserialize($ans_row["a_answered"]); 

foreach($answer as $val){ 
    for($i=0; $i<=3; $i++){ 
    $r[$i] = $answer[$i]; 
} 

} 

爲例如,讓我們說一個解序列化過程之後,我得到每個陣列元素,如下:

$r[0] = a 
$r[1] = b 
$r[2] = c 

與a,b和C,我想他們每個人分配到另一個表圈,這是取它的問題,如下所示:

1) question a? 
    answer a. 

2) question b? 
    answer b. 

3) question c? 
    answer c. 

,但我的代碼總是返回像

1) question a? 
    answer a b c. 

2) question b? 
    answer a b c. 

3) question c? 
    answer a b c. 

的完整代碼如下所有的答案:

$ques_data = array(); 
$q_ques = mysql_query("SELECT * FROM ".$tb03." WHERE ques_section='".$sectid."' AND ques_status='1' ORDER BY ques_id") or die(mysql_error()); 

while($rows = mysql_fetch_assoc($q_ques)){ 
$ques_data[] = $rows; 
} 

$q_chkans = mysql_query("SELECT * FROM ".$tb08." WHERE a_usrid='".$_COOKIE["loggedId"]."' AND a_section='".$sectid."'") or die(mysql_error()); 
$numrows = mysql_num_rows($q_chkans);  

$q_sect = mysql_query("SELECT * FROM ".$tb02." WHERE sect_id='".$sectid."' LIMIT 0, 1") or die(mysql_error()); 
$r_sect = mysql_fetch_array($q_sect); 
$section = $r_sect["sect_id"]; 

echo "<div class='sect_list'><b style='color:#000;'>".sprintf("%1\$.1f",$no)."&nbsp;&nbsp;".ucwords($r_sect["sect_title"])."</b></div>".$staff_txt; 

foreach($ques_data as $ques_rows){ 

    echo "<div class='ques_list'> 
      <div><b>".$sectid.".".$no."</b>&nbsp;&nbsp;".ucwords($ques_rows["ques_title"])."</div> 
      <div class='ques_rmk'>".ucwords($ques_rows["ques_rmk"])."</div> 
      <div class='answer'>"; 
       if($numrows <= 0){ 

        $q_ans = mysql_query("SELECT * FROM ".$tb04." WHERE input_ques_id='".$ques_rows["ques_id"]."'") or die(mysql_error()); 

        if($ques_rows["ques_type"] == 1){ 
         echo "<select name='txtOpt_".$section."_".$no."'>"; 

         while($ans_rows = mysql_fetch_array($q_ans)){ 
          echo "<option value='".$ans_rows["input_mark"]."'>".$ans_rows["input_title"]."</option>"; 
         } 

         echo "</select>"; 

        }else{ 

         echo "<input type='text' name='txtbox_".$section."' value='' style='width:500px;height:18px;' />"; 
        } 

       }else{ 

        while($ans_row = mysql_fetch_array($q_chkans)){ 
         $answer = unserialize($ans_row["a_answered"]); 

         foreach($answer as $val){ 
          for($e=0; $e<=count($answer); $e++){ 
           $r[$e] = $answer[$e]; 
          } 
         } 
        } 


       } 

    echo " </div> 
      </div>"; 

     $no += 1; 
    } 

我怎樣才能讓每一個答案可以適當分配到它自己的問題?

請指教,謝謝!

+0

請給出你現在有那麼我們可以提高對 –

+0

請給所有的數組值和變量,使我們可以幫助您 – sumi

回答

0

試試這個:

while($ans_row = mysql_fetch_array($q_chkans)){ 
    $answer = unserialize($ans_row["a_answered"]); 

    foreach($answer as $i => $val){ 
     $r[$i] = $val; 
    } 

} 
+0

保持它的代碼示例,我頁面忙碌... – conmen