php - 在 PHP 文档中使用 SQL 查询数据库中的两个表时遇到困难

标签 php mysql sql pear


我真的很难让我的代码正常工作,但我不明白为什么。

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

  1. 网球场
    法院ID
    法院名称
    预订费

  2. tenniscourts_Availability
    法院ID
    Court_dateBooked

我正在使用 PEAR 存储库编写 PHP 程序,并且正在努力创建允许我执行以下操作的代码:

仅当法院名称尚未被其他用户预订时,才根据用户搜索日期显示所有法院名称及其相应的预订费用。

这是我当前的代码:-

    $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。仅当未预订时,我无法让它显示法庭名称和预订费。如果已预订,则应返回“抱歉,此日期未找到法院”。

我对 PHP 和 SQL 还很陌生,所以如果我没有说清楚,请原谅我。我一直在网上研究,各种资料都说使用 SQL UNION OR JOIN?有人可以告诉我如何在我的场景中使用它们吗?我真的很感谢任何帮助。感谢您查看我的问题。

最佳答案

试试这个:

$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,因此您应该为此使用准备好的语句。

关于php - 在 PHP 文档中使用 SQL 查询数据库中的两个表时遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10092791/

相关文章:

php - 按原型(prototype)订购

java - 合并数据库中的名字和姓氏并在文本字段中显示详细信息?

sql - 如何获得独特的结果

php - 显示来自 3 个 SQL 表的表数据并使用 php 条件显示 - 使用完全连接

php - 如何在 PHP 中获取有用的错误消息?

mysql - 无法解释是什么让我的查询如此缓慢

mysql - MariaDB 中是否有等同于 sprintf ('%+03d:00' , $my_number) 的东西?

MySQL 在 where 子句中分配用户定义的变量

SQL - 外键引用不同表的主键 (Postgres)

php - foreach 循环中 current() 的意外行为