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