难以使用PHP文档中的SQL查询数据库中的两个表

时间:2012-04-10 16:36:11

标签: php mysql sql pear

我真的很难让我的代码工作,我无法弄明白为什么。

我的PHPMyAdmin中有一个数据库,它包含2个表:

  1. tennisCourts
          courtID
          courtName
          bookingFee

  2. tenniscourts_Availability
          courtID
         court_dateBooked

  3. 我正在使用PEAR存储库编写PHP程序,我正在努力创建允许我执行的代码:

    仅在尚未由其他用户预订courtName时显示所有courtNames及其相应的bookingFee基于用户搜索日期。

    这是我目前的代码: -

        $CHOSEN_BOOKING_DATE =  $_GET['user_dateField']; //GET's input data from user form in my other html document.
    
    
        $database->setFetchMode(MDB2_FETCHMODE_ASSOC);
    
    
        $myQuery = "SELECT * FROM tennisCourts, tenniscourts_Availability WHERE court_dateBooked != $CHOSEN_BOOKING_DATE";
    
    
    $queryResult =& $db->query($myQuery);
    
        if (PEAR::isError($queryResult)) {
            die($queryResult->getMessage());
        }
    
        echo '<table>';
        while ($Col =& $queryResult->fetchRow()) {  
            echo '<td>'.$queryResult['courtName'].'</td>';
            echo '<td>'.$queryResult['bookingFee'].'</td>'; 
            echo '<td>'.$queryResult['court_dateBooked'].'</td>';
        }
    
    ?>
    

    上面的代码显示了我数据库中所有court_dateBooked字段的所有courtNames和BookingFee。我不能让它显示courtNames和bookingFee只有在没有预订的情况下。如果它被预订,它应该返回“抱歉没有在这个日期找到的法院”。

    我还是PHP和SQL的新手,请原谅我,如果我还没弄清楚的话。我一直在网上研究,各种消息来源说使用SQL UNION OR JOIN?有人可以请教我如何在我的场景中使用它们吗?我非常感谢任何帮助。感谢您查看我的问题。

1 个答案:

答案 0 :(得分:1)

试试这个:

$myQuery = "
    SELECT c.courtName
         , c.bookingFee
         , a.court_dateBooked
      FROM tennisCourts AS c
 LEFT JOIN tenniscourts_Availability AS a ON c.id = a.courtID
     WHERE a.court_dateBooked != '" . $CHOSEN_BOOKING_DATE ."'";

确保在执行查询之前正确清理并转义$CHOSEN_BOOKING_DATE。因为看起来你正在使用PDO,所以你应该使用准备好的语句。