PHP-如何显示餐厅预订
我目前有一个重新安装的预订数据库。这包含他们想要的菜单。这是我的sql查询显示的内容,也是我希望在网站上显示的内容 显示两个订单,以及每个订单的所有菜单项。我想在我的网站上显示为两个单独的订单。 我的PHP代码如下所示,使用PDO,不包括数据库连接和查询等PHP-如何显示餐厅预订,php,mysql,pdo,Php,Mysql,Pdo,我目前有一个重新安装的预订数据库。这包含他们想要的菜单。这是我的sql查询显示的内容,也是我希望在网站上显示的内容 显示两个订单,以及每个订单的所有菜单项。我想在我的网站上显示为两个单独的订单。 我的PHP代码如下所示,使用PDO,不包括数据库连接和查询等 $resultset = $conn->query($query, PDO::FETCH_OBJ); while($result=$resultset->fetch()) {
$resultset = $conn->query($query, PDO::FETCH_OBJ);
while($result=$resultset->fetch())
{
echo "Order Details:<br> CustomerID: $result->CustomerID<br>PaymentID:
$result->PaymentID<p>
Booking Details:<br> Date: $result->Date<br>
Time: $result->Time <p>Menu Items:<br>";
echo "$result->MealName x$result->Quantity<br>";
}
?>
我只希望每个订单显示一次customerID/PaymentID,下面显示所有项目
我该怎么做呢?您可能希望根据预订id进行分组,因为客户可以在同一天下多个订单。也就是说,我会先按客户id然后按预订id对查询进行排序。然后调整您的循环,以便它能够检测到预订id与上次迭代时的更改。完成时,输出客户信息。大概是这样的:
$last = null;
while (...) {
if ($result->ReservationID !== $last) {
// output per-order header
}
// output item details
$last = $result->ReservationID;
}
或者,您可以分两步来完成这项工作——首先获取今天的订单列表,然后为每个订单显示详细信息。这是一种更面向对象的方法。您必须为每个对象编写一个类。例如:
$restaurant = new Restaurant($id);
foreach ($restaurant->getOrdersForDate($today) as $order) {
$order->render();
}
其中Order::render()方法类似于:
public function render() {
$this->renderHeader();
foreach ($this->getItems() as $item) {
$item->render();
}
$this->renderFooter();
}
public function render() {
$this->renderHeader();
foreach ($this->getItems() as $item) {
$item->render();
}
$this->renderFooter();
}