0
构建一个价格表我需要显示房企的表是这样的: 有效地从MySQL数据库
有18日期列,他们不会全部是相同的关税。在18列中,可能有1到6种不同的关税。出于这个原因,我在我的数据库中有关税和价格表。
tariff: tariff_id room_id
price: tariff_id double_weekday single_weekday double weekend single_weekend extrabed
然后有一个日期表:
dates: date tariff_id hotel_id + some more fields
我的问题是找到构建以高效的方式我的MySQL查询的最佳方式。显然,我不想为表中的每个单元格运行查询。
我已经开始查找适用于显示日期范围的关税。
$query_tariff = "SELECT tariff_id, date FROM dates WHERE (date BETWEEN '$firstdate' AND '$lastdate') AND hotel_id = '$hid'";
然后,我可以很容易地将该结果减少到唯一的tariff_id值。
然后,我有一个查询来获取所有对应于每个如果关税价格:
while ($row_tariff = mysql_fetch_assoc($tariff)) {
$tariff_id = $row_tariff['tariff_id'];
$query_price = "SELECT * FROM price WHERE tariff_id = '$tariff_id'";
}
我的问题就来了下一阶段。当我连续写一行时,我怎么知道使用哪个价格?我有一种感觉,这可能需要数据透视表,但我已经完成了一些阅读并完全丢失了。或者也许解决方案在于使用数组,我能够理解的机会稍大一些。
问题是“foreach感兴趣的日期”内发生了什么。似乎我不得不在那里查询以获取价格信息。因此,如果有六种房间类型,那就是6×18 = 108个查询来显示表格一次。 – TrapezeArtist 2014-09-05 15:49:19
或查询该房型的所有房价。就我个人而言,我将价格表设计为一种房价的一天房价。然后,您可以查询相关联接,其中可用日期位于搜索的开始日期和结束日期之间。 – 2014-09-05 16:01:12