PHP循环循环

时间:2016-06-16 06:04:01

标签: php loops

我有一个数据库,其中包含学生名单和有用书籍的列表(书籍列表,序列化,存储在一行)。我现在试图显示所有学生和他们使用的书籍列表,我在一个循环中创建了一个循环,但事情是它只显示第一个记录。它显示正常,但只是第一个记录。

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);

1 个答案:

答案 0 :(得分: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 " - ";
            }
        }       
}