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