我正在尝试为本周做医生可用性表 . 手术中有3名医生(Curly,Moe,Larry) . 所有3名医生必须始终在每个牢房中,例如星期一 - 上午9点至10点应该首先展示在此期间有预约的医生,我有这个工作 . 我的问题是如何让它在医生下面打印剩下的两个医生的名字 . 这样做的原因是,一旦我有这个部分想通了我将需要对这些医生进行颜色编码,如果预订则为红色,如果可用则为绿色 .
PHP页面:
<?php
$servername = "???";
$username = "???";
$password = "???";
$dbname = "???";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT doctor FROM booking WHERE datereq BETWEEN '2015-11-02 09:00:00' AND '2015-11-02 10:00:00'";
$result = $conn->query($sql);
echo "
<table width='80%' align='center' >
<div id='head_nav'>
<tr>";
echo"<th>Time</th>
<th>Monday</th>
<th>Tuesday</th>
<th>Wednesday</th>
<th>Thursday</th>
<th>Friday</th>
</tr>
</div>";
echo"<tr><th>09:00 - 10:00</th><td>";
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<br>". $row["doctor"]. "<br>";
echo "<br>". $row["doctor"]. "<br>";
echo "<br>". $row["doctor"]. "<br>";
}
} else {
echo "0 Results";
}
$sql = "SELECT doctor FROM booking WHERE datereq BETWEEN '2015-11-03 10:00:00' AND '2015-11-03 11:00:00'";
$result = $conn->query($sql);
echo"<tr><th>10:00 - 11:00</th><td>";
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<br>". $row["doctor"]. "<br>";
echo "<br>". $row["doctor"]. "<br>";
echo "<br>". $row["doctor"]. "<br>";
}
} else {
echo "0 Results";
}
$conn->close();
?>
1 回答
这使用您在评论和其他地方看到的模式 . 我把它清理了一下 . 它使你的时间表免费维护,而不是你的 . 您的时间表中有新行 . 日常 . 对我来说,它应该都位于
booking
表中 .因此,在以下结果集中,您会看到我只是继续构建先前的结果集,从而引入信息 . 婴儿步骤将网格放在一起 .
架构
第一个问题是弄湿我们的脚 . 显示给定日期的时间段,并与所有医生交叉加入 . 注意
order by
.以下内容进一步扩展,以显示一个日期的约会 .
如果您将星期一作为日期传递,则以下内容会对其进行扩展,并按日期从星期一开始按不同的列开始 . 因此,如果这是您的星期几开始所需要的,那么这就是您需要传递的内容 .
它通过交叉连接完成,然后按天连接 . 它通过底部的交叉连接(星期一日期)将您的数据参数(日期,星期一)带入,它简单地变为
variable
,@Monday
.所以上面是你的约会网格 . 继续这个主题,加入患者表格,在5个最右边的列中显示他们的姓氏 . 管他呢 . 这是微不足道的 . 但这个答案太长了,无法阅读 .
如果数据不为null,则它有一个约会(如你所说的绿色文本) . 如果是
NULL
,那么医生和时间的那个位置还没有预约 .