2016-06-16 27 views
0

私は、名前と空きリスト(連載された書籍のリスト、1行に格納されている)を持つ学生のリストを含むデータベースを持っています。私は今、生徒のすべてを表示しようとしていて、彼らが手に取った本のリストを表示すると、私はループ内にループを作成しましたが、最初のレコードを表示するだけです。それはうまく表示されますが、最初のレコードだけです。ループ内のPHPループ

mysql_select_db("MYDB", $con); 
$result = mysql_query("Select * From EnrolleeList where Gradelvl = 2 Order By Lname ASC"); 
while($row=mysql_fetch_array($result)) 
    { 
    echo $row['name'] . " " . $row['lastname']; 
    $glvl = $row['Gradelvl']; 
    $getbooks = $row['BookList']; //data containing book list 

    $getbooks = unserialize($getbooks); 
    $arrlength = count($getbooks); 

    for($actr = 0; $actr < $arrlength; $actr++) 
     { 
     $result = mysql_query("Select * From ELEMBooks where GradeLevel = '$glvl' and BID = '$getbooks[$actr]' "); 
     while($row = mysql_fetch_array($result)) 
      { 
      echo $row['Subject']; 
      echo " - "; 
      echo $row['Book']; 
      echo " - "; 
      echo $row['Weight']; 
      echo " - "; 
      } 
     }  
} 
mysql_close($con); 
+0

で同じちょうどあなたの上部のVaRの値が上書きされますと、あなたの上部のループが正しい取得に失敗しましたであろう内部ループ '$のrow'、' $ result'など、他に別の変数名を使用 –

答えて

2

外側ループ用には$rowを使用し、内側には異なる変数exを使用してください。 $rowInnerと重複するすべての変数

while($row=mysql_fetch_array($result)) // $row here 
    { 
    echo $row['name'] . " " . $row['lastname']; 
    $glvl = $row['Gradelvl']; 
    $getbooks = $row['BookList']; //data containing book list 

    $getbooks = unserialize($getbooks); 
    $arrlength = count($getbooks); 

    for($actr = 0; $actr < $arrlength; $actr++) 
     { 
     $resultInner = mysql_query("Select * From ELEMBooks where GradeLevel = '$glvl' and BID = '$getbooks[$actr]' "); 
     while($rowInner = mysql_fetch_array($resultInner)) // $rowInner here 
      { 
      echo $rowInner['Subject']; 
      echo " - "; 
      echo $rowInner['Book']; 
      echo " - "; 
      echo $rowInner['Weight']; 
      echo " - "; 
      } 
     }  
} 
+0

ダイバーの名前を使用する理由を説明すると良いでしょうか? –