我正在执行 SQL 来显示这位老师当前正在教授的实际主题。它应该只显示科目名称(例如,它在上午 8 点在教师个人资料中显示“语言”)。在数据库中,我有表 - 时间表,并且有 start_time 和 end_time 的数据保存在 DATETIME 中。我有一个问题,如何互连 SQL 和 PHP 然后显示。 我有这个 SQL 查询:
SELECT lessons.schoolday, lessons.start_time, lessons.end_time, lectors.lectorsurname, studentgroups.class_id, classes.grade, subjects.subjectname
FROM lessons INNER JOIN lectors ON lessons.lector_id=lectors.lector_id
INNER JOIN studentgroups ON lessons.studentgroup_id=studentgroups.studentgroup_id
INNER JOIN classes ON studentgroups.class_id=classes.class_id
INNER JOIN subjects ON lessons.subject_id=subjects.subject_id
WHERE lessons.start_time <= substring(('".date('Y-m-d H:i:s')."'),11,6)
AND lessons.end_time >= substring(('".date('Y-m-d H:i:s')."'),11,6)
AND lectors.lector_id=:id");
当我更改日期而不是间隔(例如 start_time->0000-00-00 08:00:00、end_time->0000-00-00 08:45:00)时,它正在工作。但这样,它只打印 Array()。 HTML 使用 Latte 模板显示,并且有条件,如果为空数组,则显示消息 = 老师当前不在教学,但这也不起作用。
......
PHP 代码:
$stmt3 = $db->prepare(" SELECT l.schoolday, l.start_time, l.end_time, t.lectorsurname, sg.class_id, c.grade, s.subjectname
FROM lessons l
INNER JOIN lectors t ON l.lector_id=t.lector_id
INNER JOIN studentgroups sg ON l.studentgroup_id=sg.studentgroup_id
INNER JOIN classes c ON sg.class_id=c.class_id
INNER JOIN subjects s ON l.subject_id=s.subject_id
WHERE l.start_time <= CURTIME() AND l.end_time >= CURTIME() AND t.lector_id=:id
ORDER By c.grade, l.schoolday, l.start_time");
$stmt3->bindValue(":id", intval($_GET["id"]));
$stmt3->execute();
$data=$stmt3->fetchAll();
print_r($data);
$tplVars["lesson"] = $stmt3->fetchAll();
和拿铁模板
<table>
.
.
.
<tr>
<th> Aktuálne vyučuje: </th>
</tr>
{foreach $lesson as $aktual}
{if !empty($aktual['grade'])}
<tr>
<td>{$aktual['grade']} </td>
</tr>
{/if}
{if ($aktual['grade']) == NULL}
<tr> <td> <span> Učiteľ momentálne nevyučuje </span></td></tr>
{/if}
{/foreach}
</table>
最佳答案
搜索一些示例。使用一些别名,可读性更好。 NOW() 还不够吗?请参阅this link了解更多 MySql 日期和时间函数
SELECT l.schoolday, l.start_time, l.end_time, t.lectorsurname, sg.class_id, c.grade, s.subjectname
FROM lessons l
INNER JOIN lectors t ON l.lector_id=t.lector_id
INNER JOIN studentgroups sg ON l.studentgroup_id=sg.studentgroup_id
INNER JOIN classes c ON sg.class_id=c.class_id
INNER JOIN subjects s ON l.subject_id=s.subject_id
WHERE l.start_time <= NOW() AND l.end_time >= NOW() AND t.lector_id=:id
关于php - 如何显示数据库中的实际数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34466975/