php - 加入同一张表的两个 SQL 选择查询并过滤
问题描述
我有一张医生表格,下面给出了以下列,我想使用提交按钮按日期获取详细信息。但我无法过滤查询以获取同一张表的详细信息。我将日期转换为特定日期并将其存储在$day
变量中,并将 id存储在变量中,方法是$available
从上一页传输会话变量的值并在两个 SQL 查询中实现它。谁能指导我?对于任何打字错误,我深表歉意。
医生:
id doctorname date1 day1 day2 day3 day4 day5 day6 day7
1 arvind 2018-05-29
2 sonal 0000-00-00 mon tue wed thu fri sat sun
3 harry 0000-00-00 mon tue wed thu
<?php
session_start();
include 'connect.php';
if(isset($_GET['submit'] ))
{ $date=$_GET['date'];
$available= $_SESSION['available'];
$day=date('l', strtotime($date));
$sql=mysqli_query($mysqli,"SELECT id,specilization,doctorName,
docFees, starttime, endtime,date1 FROM doctors WHERE
id= '$available' AND cast(date1 as date) = '$date'" )
UNION
SELECT id,specilization,doctorName, docFees, starttime, endtime,date1
FROM doctors WHERE id= '$available' AND DAY1='$day' OR DAY2='$day' AND
DAY3='$day' OR DAY4='$day' AND DAY5='$day' OR DAY6='$day' OR
DAY7='$day'");
$row = mysqli_fetch_array($sql);
If(empty($_GET['date']))
{ echo "ENTER DATE PlEASE";}
elseif($row1>1)
{echo "Day:". $day;
echo "<br>";
?> <tr>
<td><?php echo $row1['id'];?></td>
<td><?php echo $row1['specilization'];?></td>
<td><?php echo $row1['doctorName'];?></td>
<td><?php echo $row1['docFees'];?></td>
<td><?php echo $row1['starttime'];?></td>
<td><?php echo $row1['endtime'];?></td>
<td><?php echo $_SESSION['bdate'];?></td>
</tr>
</table>
<?php }?>
解决方案
您不需要UNION
,只需使用OR
:
$sql=mysqli_query($mysqli,"
SELECT id,specilization,doctorName, docFees, starttime, endtime,date1
FROM doctors
WHERE id = '$available'
AND (cast(date1 as date) = '$date'
OR '$day' IN (day1, day2, day3, day4, day5, day6, day7))");
推荐阅读
- laravel - laravel 护照 oauth2 实时服务器未经身份验证 401
- java - 使用条件 API 确定实体字段类型,而不会在 intelij / 编译器中显示警告
- javascript - D3.js - 在饼图中填充颜色的问题
- ios - 中心按钮标签栏
- python - 无法在顶层窗口中创建框架
- docker - 如何通过专用网络从 docker 访问另一个 DigitalOcean 液滴?
- javascript - 如何获取 Bootstrap selectpicker 中仅最新更改的值
- reactjs - 在胜利图轴上强制设置一条顶线
- sharepoint - 如何使用 JSOM 从 SharePoint Online 中的 LocalID 获取货币符号
- apache-spark - spark udf 返回相同的元素为结构数组引发错误