gpt4 book ai didi

php - 日程表中的分组日

转载 作者:行者123 更新时间:2023-11-29 12:26:46 25 4
gpt4 key购买 nike

请帮助我,我在设计这个时间表时遇到问题。这是我目前的设计 https://www.dropbox.com/s/wcyqgkk7i0bm2cz/%202015-01-29%2000-19-46.png?dl=0我不知道这样做https://www.dropbox.com/s/5ppchqypixix3no/result.jpg?dl=0 .

这是我的查询

SELECT a.*, b.`nama_kelas`, `c`.`nama_hari` FROM `tbl_jadwal` AS `a`
LEFT JOIN `tbl_kelas` AS `b` ON a.`id_kelas` = b.`id_kelas`
LEFT JOIN `tbl_hari` AS `c` ON a.`id_hari` = c.`id_hari`
ORDER BY `a`.`id_kelas`,a.`id_hari`,a.`id_jam_pel`,a.`kode_guru`,a.`id_mapel`

希望有人也能在 CSS 方面帮助我。但最重要的是对这一天进行分组(抱歉,这一天的名称语言是印度尼西亚语)。

你可以检查我的SQLfiddle:http://sqlfiddle.com/#!2/1837f

请帮助我。谢谢

最佳答案

您尝试做的事情不能直接使用 SQL 完成。它无法像这样跨行分组。

最好的办法是将其分成多个查询,如下所示:

获取时间表:sqlfiddle

SELECT 
h.id_hari,
jp.jam_pel,
g.nama_lengkap
FROM tbl_jadwal j
LEFT JOIN tbl_kelas k
ON j.id_kelas = k.id_kelas
LEFT JOIN tbl_hari h
ON j.id_hari = h.id_hari
LEFT JOIN tbl_jam_pel jp
ON j.id_jam_pel = jp.id_jam_pel
LEFT JOIN tbl_guru g
ON j.kode_guru = g.kode_guru
ORDER BY k.id_kelas,
h.id_hari,
jp.id_jam_pel,
j.kode_guru,
j.id_mapel

下一个让您知道每天有多少小时 block 。如果您愿意,也可以通过循环和计数在代码中执行此操作。唯一的限制是您在输出循环开始之前知道该数字。这意味着如果您在代码中执行此操作,则需要两个循环。计数一项,然后显示一项。

我将所有联接保留在此处,因为我不知道您要显示的内容的所有限制。如果您愿意,您可以消除它们,但这将确保您只计算上述计划的行数。

获取每天设置的小时数:sqlfiddle

SELECT 
h.id_hari,
h.nama_hari,
COUNT(h.id_hari) AS jam_untuk_hari
FROM tbl_jadwal j
LEFT JOIN tbl_kelas k
ON j.id_kelas = k.id_kelas
LEFT JOIN tbl_hari h
ON j.id_hari = h.id_hari
LEFT JOIN tbl_jam_pel jp
ON j.id_jam_pel = jp.id_jam_pel
LEFT JOIN tbl_guru g
ON j.kode_guru = g.kode_guru
GROUP BY h.id_hari

您需要执行相同的操作才能获取每节课的小时数。

接下来,要正确显示此内容,您将使用 td 元素的 rowspan 属性。这是一些伪代码:

FOR hour in hours
IF is first row of day THEN OUTPUT:
<td rowspan="NUMBER_OF_HOURS_IN_DAY">NAMA_HARI</td>

OUTPUT:
<td>JAM</td>
<td>NAMA_GURU</td> <!-- Here's where you'll need to do the same thing as above -->

rowspan 属性允许您按照预期对内容进行分组。

最终结果如下所示:

<table>
<tr>
<td rowspan="3">1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</table>

关于php - 日程表中的分组日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28198732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com