Php 我能把这个PDO改短些吗

Php 我能把这个PDO改短些吗,php,sql,pdo,Php,Sql,Pdo,我正在创建一个人们可以预订桌子的地方。 这是学校的一个项目 但问题是,我想在数据库中检查表是否已为所选日期和时间保留,如果为true,则向其添加一个类,使其变为红色,或类似的内容 我现在有这个代码,但我不想对表2-18做同样的事情,因为我将得到巨大的代码。一定有更简单的办法。 有人有什么想法吗 <? $date = $_GET['date']; $time = $_GET['time']; ?> <button class="table

我正在创建一个人们可以预订桌子的地方。 这是学校的一个项目

但问题是,我想在数据库中检查表是否已为所选日期和时间保留,如果为true,则向其添加一个类,使其变为红色,或类似的内容

我现在有这个代码,但我不想对表2-18做同样的事情,因为我将得到巨大的代码。一定有更简单的办法。 有人有什么想法吗

<?
    $date = $_GET['date'];
    $time = $_GET['time'];
    ?>
    <button class="table 
    <?
    $table1 = $con->prepare( "SELECT * FROM `table` WHERE `table` = 1 AND `date` = ? AND `time` = ?" );
    $table1->bindValue( 1, $date );
    $table1->bindValue( 2, $time );
    $table1->execute();
    if( $tafel1->rowCount() > 0 ) { echo "active";}
    ?>"></button>

这样做会很好地发挥作用,充分利用事先准备好的声明:

$date = $_GET['date'];
$time = $_GET['time'];
$query = $con->prepare("
    SELECT `id` -- if you don't have an ID column, replace with any column really
    FROM `table`
    WHERE `table` = ?
      AND `date` = ?
      AND `time` = ?
    LIMIT 1 -- you're only interested in existence, so limit 1 is more efficient
");
foreach(range(1,18) as $table) {
    $query->execute(array($table, $date, $time));
    if( $query->rowCount() > 0) $class = "table active";
    else $class = "table";

    echo '<button class="'.$class.'"></button>';
}
只需参数化您的表=?专栏也是。您可以使用->执行[$table,$date,$time]而不是->bindValue调用来进一步缩短代码。您还可以选择特定日期和时间的所有表字段。如果此选择中不存在表-则它处于活动状态,否则-不存在。