Php 如何显示数据库中的实际数据

Php 如何显示数据库中的实际数据,php,mysql,sql,Php,Mysql,Sql,我正在使用SQL来显示这个老师和这个老师目前正在教授的实际科目。它应该只显示科目名称(例如,在上午8点的教师档案中显示“语言”)。在数据库中我有表时间表,有开始时间和结束时间的数据保存在DATETIME中。我有问题如何互连SQL和PHP,然后显示。 我有一个SQL查询: SELECT lessons.schoolday, lessons.start_time, lessons.end_time, lectors.lectorsurname, studentgroups.class_id, cla

我正在使用SQL来显示这个老师和这个老师目前正在教授的实际科目。它应该只显示科目名称(例如,在上午8点的教师档案中显示“语言”)。在数据库中我有表时间表,有开始时间和结束时间的数据保存在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");
选择lessons.schoolday、lessons.start\u time、lessons.end\u time、lector.lector\urname、studentgroups.class\u id、class.grade、subjects.subjectname
从课程内部连接课程上的选择器。选择器\u id=选择器。选择器\u id
在课程中内部加入学生组。学生组\u id=学生组。学生组\u id
学生组上的内部联接类。class\u id=classes.class\u id
课程中的内部连接主题。主题\u id=主题。主题\u id
其中lessons.start_time=子字符串(“.date('Y-m-d H:i:s'))。”),11,6)
和选择器。选择器id=:id“;
当我更改日期而不是时间间隔(例如开始时间->0000-00-00 08:00:00,结束时间->0000-00-00 08:45:00)时,它工作了。但这样,它只打印数组()。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();

$stmt3=$db->prepare(“选择l.schoolday、l.start\u time、l.end\u time、t.selectorsurname、sg.class\u id、c.grade、s.subjectname
从第1课
l.lector_id=t.lector_id上的内部联接选择器t
在l.studentgroup\u id=sg.studentgroup\u id上内部联接studentgroups sg
sg.class\u id=c.class\u id上的内部联接类c
在l.subject\u id=s.subject\u id上的内部联接主题s
其中l.start\u time=CURTIME()和t.lector\u id=:id
按c.年级、l.学校日、l.开始时间排序);
$stmt3->bindValue(“:id”,intval($\u GET[“id”]);
$stmt3->execute();
$data=$stmt3->fetchAll();
打印(数据);
$tplVars[“课程”]=$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>

. 
.
.
阿克图阿尔内·维尤切耶:
{foreach$lesson as$aktual}
{if!空($aktual['grade'])}
{$aktual['grade']}
{/if}
{if($aktual['grade'])==NULL}
乌契特·内维尤·乌杰
{/if}
{/foreach}

搜索一些示例。使用一些别名可读性更好。仅使用NOW()还不够吗?有关更多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

选择l.schoolday、l.start\u time、l.end\u time、t.selectorsurname、sg.class\u id、c.grade、s.subjectname
从第1课
l.lector_id=t.lector_id上的内部联接选择器t
在l.studentgroup\u id=sg.studentgroup\u id上内部联接studentgroups sg
sg.class\u id=c.class\u id上的内部联接类c
在l.subject\u id=s.subject\u id上的内部联接主题s
其中l.start\u time=NOW()和t.lector\u id=:id

您必须将您的php代码添加到问题中,以便我们提供帮助。使用php mysqli查询实际上,OP似乎只需要datetime的时间部分,因此可能需要
CURTIME()
。我正在尝试,CURTIME仍然显示数组(),查看此行:print\r($data);您的数据库中似乎没有找到符合您在查询中编写的条件的记录。选择l.schoolday、l.start\u time、l.end\u time、t.lectorsurname、sg.class\u id、c.grade、s.subjectname FROM lesss l INNER JOIN l.lector\u id=t.lector\u id INNER JOIN studentgroups sg ON l.studentgroup\u id=sg.studentgroup\u id INNER JOINsg上的类c.class\u id=c.class\u id内部连接l.subject\u id=s.subject\u id其中l.start\u time=CURTIME()…我不明白为什么它显示没有条件的数据,当我添加条件时它不显示…在datetime中可能有问题?开始时间和结束时间被保存为0000-00-00 08:00 f.e。