1

我正在尝试使用 foreach 循环从两个单独的表中查看值。用户从下拉列表中选择一个“开始学期”和一个“结束学期”,这两个学期存储在一个名为 $semesterarray 的数组中

<table style='width: 75%; text-align: left;' cellpadding = '4'>
<tr bgcolor=#000090>
<th><FONT COLOR = #FFFFFF><b><?php echo $startsem ?></b></th>
<th><FONT COLOR = #FFFFFF><b><?php echo $endsem ?></b></th>
</tr>

// If $semesterarray contains 10 and 11, I want to be able to view the
// courses taken in the 10 semester and the 11 semester under two separate columns.

<?php
function getSemesterDetails($semester) 
{
    $output = "";
    $semA = $semester."reg";
    $query = "SELECT course1,course2,course3 FROM $semA";
    $result = mysql_query($query) or die(mysql_error());

    while ($row = mysql_fetch_array($result))
    {

            // row displays: [course1]=> [course2]=> [course3]=>

            // Add semester code to array Keys to indicate proper semester
            // [course1.11]=> [course2.11]=> [course3.11]=>

            foreach ($row as $key => $value)
            {
                $row[$key.".".$semester] = $value;
                unset($row[$key]);
            }

        $startcourse1 = $row['course1.'.$semester];
        $startcourse2 = $row['course2.'.$semester];
        $startcourse3 = $row['course3.'.$semester];
        $startcoursesarray = array($startcourse1, $startcourse2, $startcourse3);
        $startcourses = implode("<br>", $startcoursesarray);

        $endcourse1 = $row['course1.'.$semester];
        $endcourse2 = $row['course2.'.$semester];
        $endcourse3 = $row['course3.'.$semester];
        $endcoursesarray = array($endcourse1, $endcourse2, $endcourse3);
        $endcourses = implode("<br>", $endcoursesarray);

        echo "<tr bgcolor=#ABB5F6>
        <td>$startcourses</td>
        <td>$endcourses</td>
        </tr>";
    }
}

foreach ($midsemarrayA as $key => $semester)
{
echo getSemesterDetails($semA);
}

?>

有任何想法吗?

4

1 回答 1

1

这应该足以让您开始:

function getSemesterDetails ($semester) {
    $output = "";

    $query = "SELECT course1,course2,course3 FROM $semester";
    $result = mysql_query($query) or die(mysql_error());

    while ($row = mysql_fetch_array($result)) {
            // row displays: [course1]=> [course2]=> [course3]=>

            // Add semester code to array Keys to indicate proper semester
            // [course1.11]=> [course2.11]=> [course3.11]=>

            foreach ($row as $key => $value) {
                $row[$key.".".$semester] = $value;
                unset($row[$key]);
            }

        $startcourse1 = $row['course1.'.$semester];
        $startcourse2 = $row['course2.'.$semester];
        $startcourse3 = $row['course3.'.$semester];
        $startcoursesarray = array($startcourse1, $startcourse2, $startcourse3);
        $startcourses = implode("<br>", $startcoursesarray);

        $endcourse1 = $row['course1.'.$semester];
        $endcourse2 = $row['course2.'.$semester];
        $endcourse3 = $row['course3.'.$semester];
        $endcoursesarray = array($endcourse1, $endcourse2, $endcourse3);
        $endcourses = implode("<br>", $endcoursesarray);

        $output .= "<tr bgcolor=#ABB5F6>
        <td>$startcourses</td>
        <td>$endcourses</td>
        </tr>";
    }

return $output;
}

foreach ($semesterarray as $key => $semester) {
     getSemesterDetails($semester);
}

你会想让它返回一个值数组而不是一个字符串,但是将它转移到一个子例程中应该可以解决问题。

于 2012-07-05T16:48:45.937 回答