0

MySQL次のloopように行を印刷します。

$list_students = mysql_query(
"SELECT 
    s.student_id, s.student_firstname, s.student_lastname, s.isActive, 
    c.city_name,
    sd.student_startdate, sd.student_enddate
        FROM students s 
            INNER JOIN cityselections c ON c.city_id = s.student_city_id
            INNER JOIN studentdates sd ON sd.student_id = s.student_id
                WHERE s.student_city_id NOT LIKE '1'");

while ($row = mysql_fetch_array($list_students)) 
{
    echo "<tr>\n";
        echo "<td>" . $row['student_lastname'] . ",  " . $row['student_firstname'] ."</td>\n";
        echo "<td>" . $row['student_startdate'] . "</td>\n";
        echo "<td>" . $row['student_enddate'] . "</td>\n";          
    echo "</tr>\n";
}

私もこれを持っていますfunction

function calculateNextDate($startDate, $days)
{
        $dateTime = new DateTime($startDate);

        while($days) {
            $dateTime->add(new DateInterval('P1D'));    

            if ($dateTime->format('N') < 6) {
                $days--;
            }
        }

        return $dateTime->format('Y-m-d');
}

開始日と数値を指定して日付を計算し、週末を除外します。例えば:

calculateNextDate ($list_students['student_startdate'],15)

ここで、この関数を while ループ内で動作させたいと思います。別のMySQLクエリを使用して、それぞれに対して複数の行を返すことができstudent_idます。

SELECT scp.cpl_id, scp.student_id, SUM(scpe.scpe_estimated_days) AS total FROM studentcourseplan scp
    INNER JOIN studentcourseplanelements scpe ON scpe.scpe_cpl_id = scp.cpl_id
            GROUP BY scp.cpl_id

これにより、次のように出力されます。

+--------+------------+-------+
| cpl_id | student_id | total |
+--------+------------+-------+
|    195 |         34 |    74 |
|    204 |         85 |   153 |
|    205 |         85 |   199 |
|    206 |         65 |    11 |
+--------+------------+-------+

内部の出力の最大数を計算し、loopこれが出力する日付を出力する関数が必要です

.. 生徒ごと ( student_id)。

これはどのように行うことができますか?

4

0 に答える 0