首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编码查询以显示每个选定的旅游房间类型、数量和总成本的汇总价格?

如何编码查询以显示每个选定的旅游房间类型、数量和总成本的汇总价格?
EN

Stack Overflow用户
提问于 2012-10-08 22:40:13
回答 1查看 817关注 0票数 3

我一直在学习PHP+MySQL,在Stackoverlflow上得到了慷慨的编码人员的帮助,我已经接近我的第一个功能数据库的末尾了,但是我被困住了。

我正在尝试建立一个数据库,其中用户为每个人或每个家庭选择一个房间类型(总计12人)。该表单的设置使每个人都被指定为一个房间类别(因为该产品是按每人而不是每个房间销售的)。可用客房类型为SGL、DBL (最多2人)、TPL (最多3人)和QUD (最多4人)。

我有一张表,上面有每个房间类型的输入价格,称为旅游价格,这些价格根据旅游开始日期而变化,在另一张名为“旅游开始”的表中。

基本上,我想要编写代码,查看为每个人选择的房间类型,查找相关的房间价格,计算每个房间类型中的任何一个房间,多层地计算价格x房间类型数量(显示每个人旁边的每人费率),并汇总所有房间的总成本总和。

  • 价目表有"Id、date、SGL、DBL、TPL、QUD“行
  • 客户端表有"Id、名称、旅游购买“行
  • 订票表有行*"Id,client_id,tour_id,tourdate_id,roomtype"*
  • 旅游表有行*"Tour_id,旅游名称,打开/关闭销售“*
  • 旅游日期表有行*"Tourdate_id,tour_id,date1,date2,date3,. date25"*

例如,旅游房价格(每人)

  • 2012年5月1日- SGL=$300;DBL=$150;TPL=$100;QUD=$75
  • 2012年10月1日- SGL=$500;DBL=$250;TPL=$166.67;QUD=$125

用户想预订-1 SGL,2 DBL,+1 TPL为8人2012年5月1日的旅游。

因此,由此产生的确认显示应该类似于此(以及通常的HTML:“谢谢,您是最好的customer..blah,诸如此类”,这已经很好了):

  • 人1) 300新格勒
  • 人2) DBL $150
  • 个人3) DBL 150美元
  • 4) DBL $150
  • 人5) DBL $150
  • 人6) TPL $100
  • 人7) TPL $100
  • 人8) TPL $100

总价=1x300+4x150+3x100+0x75=1200美元

我已经获得了系统的html表单设置,以及insert查询部分,并将数据发送到数据库。对于计算查询(对于预订确认页面),我已经得到了以下内容:

代码语言:javascript
复制
$selectedDate = $tourstart
$query = "SELECT `sgl`, `dbl`, `tpl`, `qud` FROM tourprices WHERE `tour_id` = $tour AND `tourstart` = $tourstart";
$query .= "COUNT `sgl` as SglRmCount FROM `clients`";
$query .= "COUNT `dbl` as DblRmCount FROM `clients`";
$query .= "COUNT `tpl` as TplRmCount FROM `clients`";
$query .= "COUNT `qud` as QudRmCount FROM `clients`";
$result = $pdo->query($query);
?>
  • ( a)我不确定这是否是最同意的询问。
  • ( b)我的选择查询是否正确?
  • 如何将数学引入查询(或者这是在查询之外完成的?如果是的话,我如何编纂?)。

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2012-10-08 23:02:28

您创建的查询将无法工作。计数没有正确使用。Count是指从select字段返回一个数字,如下所示:

代码语言:javascript
复制
SELECT COUNT(`sgl`) FROM your_table WHERE your_value = 0;

它将返回一个数字,即返回的记录数之和。下面是您创建的查询:

代码语言:javascript
复制
SELECT `sgl`, `dbl`, `tpl`, `qud` FROM tourprices WHERE `tour_id` = INPUTED_VALUE_FROM_PHP AND `tourstart` = YOUR_tourstart_VALUE COUNT `sgl` as SglRmCount FROM `clients` COUNT `dbl` as DblRmCount FROM `clients` COUNT `tpl` as TplRmCount FROM `clients`;

此查询将无法工作,因为第一次计数没有正确使用,其次,您只能调用一个给定的查询。看起来,您希望返回多个无关的值。如果是这样的话,那么您只需为所需的一切创建多个SELECT查询即可。

此外,在查询中排在一行的数学是完全可能的,您几乎可以在内联中完成任何事情。下面是您可以做的一些基本数学的资源:p9.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12790481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档