Php 联接同一表和筛选器的两个SQL select查询
我有一个医生表,下面给出了以下列,我想使用提交按钮按日期获取详细信息。但我无法过滤查询以获取同一个表的详细信息。我正在将日期转换为特定的日期,并将其存储在Php 联接同一表和筛选器的两个SQL select查询,php,Php,我有一个医生表,下面给出了以下列,我想使用提交按钮按日期获取详细信息。但我无法过滤查询以获取同一个表的详细信息。我正在将日期转换为特定的日期,并将其存储在$day变量和$available变量中,方法是从上一页传输会话变量的值,并在两个SQL查询中实现它。谁能给我指路吗?我为任何打字错误感到抱歉 医生: id doctorname date1 day1 day2 day3 day4 day5 day6 day7 1 arvind 2018-05-29
$day
变量和$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 }?>
id doctorname date1 day1 day2 day3 day4 day5 day6 day7
1 arvind 2018-05-29
2索纳尔0000-00-00周一周二周三周四周五周六周日
3.0000-00-00周一周二周三周四
您不需要联合
,只需使用或:
$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))");
我不完全确定你问的问题。不过,我几乎可以肯定,你在用锤子敲碎胡桃,提出所有这些问题。你能试着解释一下你想要达到的目标吗?最终用户是否只是输入了一个日期,然后列出了该日期可用的医生和他/她的技能?老实说,我会在数据库中的proc中完成这项工作,然后从网页上执行它。这将更易于编码和管理。您在调用mysqli_query()
之外有UNION
。为什么在DAYx='$day'
条件之间同时使用和和或?我猜你想在(第1天、第2天、第3天、第4天、第5天、第6天、第7天)中输入类似于“$day”的内容。
你好,斯蒂芬!我正设法从日期中获取医生的详细资料。我将日期转换为特定的日期,并将其与日期列进行匹配。之后,我将向sql查询写入日期和日期的医生,我希望当我仅获取特定日期或日期的详细信息时,应显示具有特定id的医生,否则该列应显示nothinghello barmar感谢您的回复。我的问题是,假设某位医生的预约时间为2018年5月29日,当我去取时,它会显示医生的详细信息,但当我在2015年5月31日提交给同一位医生时,详细信息应该不会显示任何内容,但它会显示其他医生的详细信息。同样的情况下,应遵循以下步骤:医生有一天。假设2018年5月29日是星期二,有身份证的医生应该只在那天出现。我希望你能理解我。你能帮我吗?我不明白你的问题。您能更新问题并显示一些样本输入和预期结果吗?好的,请查看上面给定的表格,arvind于2018年5月29日可用。现在假设我在2018年5月29日按提交按钮搜索arvind,则应显示arvind记录。现在,如果我按arvind id输入2018年5月31日,则应不显示任何内容可用。我想对从周一到周四的harry做同样的事情。因此,如果我选择从周一到周四的任何日期,则该日期首先转换为特定的日期,并检查日期列。现在harry的记录应仅显示周一到周四,而非周五,周六和周日。在问题中进行澄清,而不仅仅是评论。我之前错过了一个)
。我修复了这个问题,并添加了一个SQLFIDLE演示,演示了它的工作原理。