Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使第一个查询的结果不是第二个查询的一部分_Php_Mysql_Arrays - Fatal编程技术网

Php 使第一个查询的结果不是第二个查询的一部分

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

我有两个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 = 
'".$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">&nbsp;</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连接。