Php 使第一个查询的结果不是第二个查询的一部分
我有两个MySQL表: 表办公时间ID、日时段、应用时间 表appt ID、appt_日期、appt_时间 我想选择某一天的所有办公时间,例如2016-01-26,当时没有预约。可用应用时间 在我的查询代码中,我有:Php 使第一个查询的结果不是第二个查询的一部分,php,mysql,arrays,Php,Mysql,Arrays,我有两个MySQL表: 表办公时间ID、日时段、应用时间 表appt ID、appt_日期、appt_时间 我想选择某一天的所有办公时间,例如2016-01-26,当时没有预约。可用应用时间 在我的查询代码中,我有: // get BOOKED appointment times mysql_select_db($database_IHC, $IHC); $query_booked18 = "SELECT appt_time FROM appt WHERE appt_date = '".$m
// get BOOKED appointment times
mysql_select_db($database_IHC, $IHC);
$query_booked18 = "SELECT appt_time FROM appt WHERE appt_date =
'".$monthyear."-".$monthnum."-18'";
$booked18 = mysql_query($query_booked18, $IHC);
// MAKE BOOKED QUERY PART OF NOT IN STATEMENT FOR AVAILABLE QUERY
while($row = mysql_fetch_array($booked18)){
$temp[] = '"'.$row[0].'"';
// PUT COMMAS BETWEEN VALUES
$bookedstmt18 = implode(",",$temp);
// AVAILABLE APPOINTMENTS QUERY
$query_available18 = "SELECT * FROM officehours WHERE dayslot =
(dayofweek('".$monthyear."-".$monthnum."-18')-1) AND appt_time NOT IN
(".$bookedstmt18.") ORDER BY (date) desc";
$available18 = mysql_query($query_available18, $IHC);
$row_available18 = mysql_fetch_assoc($available18);
$totalRows_available18 = mysql_num_rows($available18);
在我的日历中显示约会18.php的部分,我有:
//check to see if closed first
if ($totalRows_closed18 > 0 ) {
echo "<td>CLOSED: </td><td>".$row_closed18['reason']."</td>";
echo $query_available18;
} else { // SHOW AVAILABLE APPOINTMENTS
echo '<td width="92" height="75" align="left" valign="top" style="text- align: left">';
do {
<a href="https://innerhealerchiropractic.com/index.php/appt/VIPschedule/" class="w3-link"><?php echo $row_available18['appt_time']; ?></a></br>
<?php } while ($row_available18 = mysql_fetch_assoc($available18));
echo '</td><td width="92" align="left" valign="top" style="text- align:left"> </td>';
} // END SHOW APPOINTMENTS ?>
我犯了个错误-
错误500 mysql\u fetch\u assoc期望参数1是资源,
布尔给定
有人能帮我解决这个问题吗?您的错误是由于SQL查询中有错误造成的 有一种更好的方法可以做到这一点。 本质上,您所做的与执行子查询相同,因为您得到的是一个单一的结果并发生内爆。因此,让我们将其分解为易于阅读的代码行:
$totalquery = "
SELECT * FROM officehours
WHERE
dayslot = (
dayofweek('".$monthyear."-".$monthnum."-18')-1
) AND
appt_time NOT IN (
SELECT appt_time FROM appt
WHERE appt_date = '".$monthyear."-".$monthnum."-18'
)
ORDER BY date desc";
中的子查询与执行另一个选择然后内爆值的方式相同
然后我们只需查询并获取assoc
$totalresults = mysql_fetch_assoc($totalquery);
$totalrows = mysql_num_rows($totalquery);
这将替换整个第一段代码并解决您的错误。摆脱第一个查询,只需执行以下操作:$totalquery=SELECT*FROM officehours,其中dayslot=dayofweek'.$monthyear.-.$monthnum.-18'-1和appt_time NOT IN SELECT appt_time FROM appt,其中appt_date=.$monthyear.$monthnum.-18'按日期顺序描述;尝试进行一个查询。。。让我看看你在浏览器输出上的两个查询不包括php代码不要使用php的不推荐的mysql_uuApi这是真的,我完全忘了在这篇文章中陈述它。我只是在继续OPs db连接。