$search1  = "SELECT classroom_id,building_id FROM use2 
             WHERE (time = '{$time}')
             AND (building_id = '{$building_id}')
             AND (lesson_id LIKE '$lesson_id')";$result1 = mysql_query($search1, $con); $row = mysql_fetch_array($result1);
  $search2 =  "SELECT * FROM classroom2
             WHERE (building_id = '{$building_id}')
             AND * NOT IN
             (SELECT * FROM classroom2
             WHERE (building_id = '{$building_id}')
             AND (classroom_id = '${row['classroom_id']}')";
  $result2 = mysql_query($search2);
while($row = mysql_fetch_array($result2))
{}显示mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\search_free2.php
use2里面存储了一些课室的使用信息,包括每节课使用的时间,课室号,哪一栋等等
然后现在实现的是输入栋号,时间查找空课室的功能,我先看按我输入的信息,看在这样的时间个栋号在use2里面有没有某些课室相关的信息,如果全部都没有相关的实现没有问题。
这是如果没有的实现,有点问题。我是想如果没有,就先把没有相关信息的课室找出来,再处理有相关信息的课室。但是找没有相关信息的课室,就显示如上错误,请指教!

解决方案 »

  1.   

    先确定一下是哪个SQL语句出错,第一个比较简单,应该没什么问题,第二个明显有问题。
      

  2.   

    描述比较混乱,但感觉上应该是能够通过一条SQL查询就能做到的。你最好把两个表的结构、各字段意义、需求再整理一下发上来。
      

  3.   

      $search2 =  "SELECT * FROM classroom2
                 WHERE (building_id = '{$building_id}')
                 EXCEPT
                 SELECT * FROM classroom2
                 WHERE (building_id = '{$building_id}')
                 AND (classroom_id = '${row['classroom_id']}')
                 ORDER BY bulding_id,classroom_id";
    这样貌似也不行
      

  4.   

    classroom2
    字段 类型 空 默认 注释 MIME 
    building_id  varchar(5) 否  栋号 主键  
    size  int(20) 是 NULL 课容量  
    microghone  varchar(50) 是 NULL 话筒是否可用  
    extention_wire  int(20) 是 NULL 排插数  
    air_condition  varchar(50) 是 NULL 空调是否可用  
    light  varchar(50) 是 NULL 灯管是否可用  
    classroom_id  varchar(10) 否  课室号 主键 
      

  5.   

    use2
    字段 类型 空 默认 注释 MIME 
    classroom_id  varchar(10) 否  教室号  
    building_id  varchar(5) 否    
    CID  varchar(50) 否  课程号  
    time  varchar(10) 否  时间  
    lesson_id  int(10) 否  
      

  6.   

    $result1 = mysql_query($search1, $con) or die(mysql_error());
    $result2 = mysql_query($search2) or die(mysql_error());都提示什么错误。
      

  7.   

    use2是存储课室被使用的情况。
    classroom2是存储课室信息,一个课室由栋号和课室号决定,如 A101——A(building_id)101(classroom_id)
    building_id 和 time是由html传进来的。
    我希望找到符合我的buiding_id 和 time下空闲的课室。
    第二个SQL语句是我先找到use里在条件下被使用了的课室,然后我希望在classroom2里找到没有相关使用的课室但building_id符合的课室,我将输出这些课室一直可用。所以我先要在classroom2你找到building_id符合的课室,再去掉classroom2中building_id符合但是它的classroom_id和use2里找到的有相关记录的课室。
      

  8.   

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXCEPT SELECT * FROM classroom2 WHERE (building_id =' at line 3
      

  9.   

     WHERE (building_id = '{$building_id}')
      AND * NOT IN
      (SEL……有这种写法的吗
      

  10.   

    AND * NOT IN   这是什么写法?
    --------------------------------------------
    AND (classroom_id = '${row['classroom_id']}')";
    改为
    AND (classroom_id = '{$row['classroom_id']}')";
      

  11.   

     "SELECT * FROM classroom2
      WHERE (building_id = '{$building_id}')
      AND * NOT IN
      (SELECT * FROM classroom2
      WHERE (building_id = '{$building_id}')
      AND (classroom_id = '${row['classroom_id']}')";
    有 * NOT IN这种语法吗。
      

  12.   

    NOT IN 是有的吧?AND classroom_id NOT IN这样,AND * NOT IN估计也有吧?怎么改了呢?只要能用,什么都可以...
      

  13.   

      $search2 =  "SELECT * FROM classroom2
                 WHERE (building_id = '{$building_id}')
                 EXCEPT
                 SELECT * FROM classroom2
                 WHERE (building_id = '{$building_id}')
                 AND (classroom_id = '{$row['classroom_id']}')
    这样总可以吧,也不行...
      

  14.   

    哪里不行。如果没有语法错误,那就是你的sql语句没写对了。
      

  15.   

    mysql没有except,我都能百度,你不能?
      

  16.   

    mysql没有except,我都能百度,你不能?
      

  17.   

    或者说我第一个SQL,找到use2中一些课室(包括栋号和课室号),我要在classroom2中找到符合栋号但非use2中找到的课室,要怎么写?