我已经设置了一日游的预订系统,收集预订人数 - 成人和孩子们,当然还有旅游日期。旅行中的最大总人数限制在40人。
在我的“预订”表中,我有“ID”,“tourDate”,“erwachs”(成年人),“kinder”(儿童)以及更多的数据存储。
我现在拥有的是:
$query = "SELECT * FROM buchung
where tourDatum >= curdate()
and tourDatum <= curdate() + INTERVAL 7 DAY
GROUP BY tourDatum";
$result = mysql_query($query);
$num=mysql_numrows($result);
$i=0;
while ($i < $num) {
$first=mysql_result($result,$i,"tourDatum");
$adult=mysql_result($result,$i,"erwachs");
$children=mysql_result($result,$i,"kinder");
$free=(40 - ($adult+$children));
echo "Tour Date - Spaces<br/>$first - $free <br/>";
$i++;}
但这并没有收集所有预订的空间
嗨,谢谢你的回答。不幸的是,这对我不起作用。上面的代码不起作用。我现在使用了以下代码:
$query = "SELECT * FROM buchung
where tourDate >= curdate()
and tourDate <= curdate() + INTERVAL 7 DAY GROUP BY tourDate";
$result = mysql_query($query);
$num=mysql_numrows($result);
$i=0;
while ($i < $num) {
$first=mysql_result($result,$i,"tourDATE");
$adult=mysql_result($result,$i,"adults");
$children=mysql_result($result,$i,"children");
free=(40 - ($adult+$children));
echo "Tour Date - Spaces<br/>$first - $free <br/>";
$i++;}
但这并没有总结当天预订的所有人。任何想法如何总结给定日期之间的所有数字,按天分组。
解释: 让我们说 25.03.2014
所以结果应该是:
6名成人+ 3名儿童= 9人。
当然,它们应该从最多40个人中扣除,当天显示的结果应为31个。
答案 0 :(得分:1)
SELECT
date_format(tourDate,'%Y-%m-%d') AS 'tour date',
(40 - (count(adults) + count(children))) AS 'free spaces'
FROM booking
where date_format(tourDate,'%Y-%m-%d') >= curdate()
and date_format(tourDate,'%Y%m%d') <= curdate() + INTERVAL 7 DAY
GROUP BY date_format(tourDate,'%Y-%m-%d')