Php 基于特定时间域的$row总和,而不仅仅是总计
这段代码可以很好地显示给定一天的预订列表,并计算一整天的客人和桌子数量。返回的所有预订金额 我试图做的或想出来的是一种基于特定时间间隔得到总数的方法。 例如,8:00、9:00、10:00等时有多少客人和桌子 我可以看到计算总数的地方,但需要帮助添加一种方法来添加一个变量,以查看预订时间和按小时计算的总数,而不仅仅是每天的总数Php 基于特定时间域的$row总和,而不仅仅是总计,php,mysql,sum,cumulative-sum,subtotal,Php,Mysql,Sum,Cumulative Sum,Subtotal,这段代码可以很好地显示给定一天的预订列表,并计算一整天的客人和桌子数量。返回的所有预订金额 我试图做的或想出来的是一种基于特定时间间隔得到总数的方法。 例如,8:00、9:00、10:00等时有多少客人和桌子 我可以看到计算总数的地方,但需要帮助添加一种方法来添加一个变量,以查看预订时间和按小时计算的总数,而不仅仅是每天的总数 $tablesum ++; $guestsum += $row->reservation_pax; <?php echo $g
$tablesum ++;
$guestsum += $row->reservation_pax;
<?php echo $guestsum;?> <?php echo _guest_summary;?>
您需要生成具有时间间隔的序列,假设您有一个超过15行的表(我称之为lookup_table),您可以使用uservars来实现这一点
SELECT d.starttime, d.endtime, COUNT(r.id) AS total
FROM
(
SELECT
@starttime := @starttime + INTERVAL 1 HOUR starttime,
@endtime := @endtime + INTERVAL 1 HOUR endtime
FROM
lookup_table
CROSS JOIN (SELECT @starttime := CURRENT_DATE + INTERVAL 7 HOUR,
@endtime := CURRENT_DATE + INTERVAL 8 HOUR - INTERVAL 1 SECOND) v
LIMIT 15
) d
LEFT JOIN
reservations r
ON r.reservation_time BETWEEN d.starttime AND d.endtime
GROUP BY d.starttime, d.endtime
如果需要从保留中筛选出一些数据,则需要将其添加到联接条件中
这是基于您提供的信息(并不多)。感谢您的回复,我认为这比我需要的要精明得多。因为我对php了解不多,所以我读了很多书。我模模糊糊地了解到,目前的脚本是将当天桌子上的所有客人数相加,并给出总客人数。我想做的是对每个可用的时段(时间)进行单独的总计。所以我不需要每说一次的间隔,也不需要毫无头绪的间隔。。。我只需要能够根据8:00、8:10、8:20等可用预订时段的数量计算客人。我正在尝试添加特定预订时间的预订总额。您能否提供表的DDL(使用
SHOW CREATE table
)以及一些示例数据和所需输出。别名为d的子查询的作用是生成时隙(2014-10-26 08:00:00 | 2014-10-26 08:59:59…2014-10-26 22:00:00 | 2014-10-26 22:59:59
)。然后,在该间隔之间的reservation\u time上加入reservation表,假设reservation\u time为datetime DataType不确定如何将其作为注释发布,因此将尝试通过添加一些注释使其可读…如果这样做不正确,请道歉。预订| id |预订|日期|预订|时间|预订| pax1 | 2014年7月31日| 8:00:00 | 1。。。。2 | 7/31/2014 | 8:00:00 | 4 ..... 19 | 7/30/2014 | 8:10:00 | 3..... 20 | 7/30/2014 | 8:10:00 | 2我能做一些像这样简单的事情吗$guestsum2+=$row->预订座位
其中预订时间
='8:00';在做了一些研究之后,它看起来很简单,但我无法让条件工作……它抛出了错误,所以我的编码方式有点错误。分析错误:语法错误,意外的“`”,应为标识符(T_字符串)或变量(T_变量)或'{'或'$'因为我得到一些反馈,这是含糊不清的,对php不熟悉。我只需要能够根据列“预订时间”来计算客人。所以我想澄清一下,我试图做的是在另一个表行中添加预订时间或特定预订时间的总计。我已经阅读了一些项目,posts和php教程,但似乎无法将它们应用于此文件或起作用。做一些进一步的研究…我可以这样做吗?`从reservations
groupby reservation\u time`中选择reservation\u time,sum(reservation\u pax)作为total\u mark,我尝试过,但似乎不知道如何包含在php文件中。
$result = mysql_query("SELECT SUM(reservation_pax) FROM reservations WHERE reservation_time = '8:00'");
if($result === FALSE) {
die(mysql_error()); // TODO: better error handling
}
while($row = mysql_fetch_array($result))
{
echo $row['SUM(reservation_pax)'];
}
SELECT d.starttime, d.endtime, COUNT(r.id) AS total
FROM
(
SELECT
@starttime := @starttime + INTERVAL 1 HOUR starttime,
@endtime := @endtime + INTERVAL 1 HOUR endtime
FROM
lookup_table
CROSS JOIN (SELECT @starttime := CURRENT_DATE + INTERVAL 7 HOUR,
@endtime := CURRENT_DATE + INTERVAL 8 HOUR - INTERVAL 1 SECOND) v
LIMIT 15
) d
LEFT JOIN
reservations r
ON r.reservation_time BETWEEN d.starttime AND d.endtime
GROUP BY d.starttime, d.endtime
$result = mysql_query("SELECT SUM(reservation_pax) FROM reservations WHERE reservation_time = '8:00:00' AND reservation_date = '2014-10-27' AND reservation_hidden ='0'") ;
if($result === FALSE) {
die(mysql_error()); // TODO: better error handling
}
while($row = mysql_fetch_array($result))
{
echo $row['SUM(reservation_pax)'];
}
?>