如何在一个日期范围内添加多个值

时间:2012-11-12 04:11:55

标签: mysql add record

我有一个酒店房价系统,我需要根据房间类型每天记录多个价值(成本)。此外,每组成本取决于其代理。每个代理商都有自己的价格。例如,

  

代理商A从12月1日开始,房间类型A = 1000,类型B = 2000,类型C = 3000   2012年 - 2012年12月20日   机构B的房间类型A = 1200,类型B = 2200,类型C = 3200从12月1日起   2012年 - 2012年12月20日

此外,房间类型可能会增加或减少。

  

代理商A从12月1日开始,房间类型A = 1000,类型B = 2000,类型C = 3000   2012年 - 2012年12月20日   代理商C的房间类型A = 1200,类型B = 2200,类型C = 3200,类型D = 3500,类型E = 3700从12月1日起   2012年 - 2012年12月20日

所以我有一个HTML表单:

<form method="post" action="submit.php">
Agency : 
<select name="agency">
<option value="a">Agency A</option>
<option value="b">Agency B</option>
<option value="c">Agency C</option>
</select>

From : <input type="text" name="date1" />
To : <input type="text" name="date2" />
<?
$sql_roomType="select * from roomtype_db order by id asc";
...
while($rec_roomType=mysql_fetch_array($result_roomType)){
$_roomTypeID=$rec_roomType['id'];
$_roomTypeCost=$rec_roomType['cost'];
$_roomTypeName=$rec_roomType['name'];
echo "$_roomTypeName : <input type=\text\" name=\"cost\" /><br />";//display stack of input
}
?>
<input type="submit" value="submit" />    
</form>

submit.php

<?
$_agency=$_POST['agency'];
$_date1=$_POST['date1'];
$_date2=$_POST['date2'];
$_cost=$_POST['cost'];
$sql_addRate="insert into rate_db values('','$_agency','$_cost','$_date1','$_date2'";
$result_addRate=mysql_query($sql_addRate);    
?>

现在的问题是我不确定将来根据这些有问题的mysql方法是否会出现任何问题。例如,费率可以在将来的日期更改。房间类型可能会添加或删除。那么请你给我一个工作脚本,用记录表将记录插入mySQL。

1 个答案:

答案 0 :(得分:0)

虽然您可以在一个表格中实现它(列字段应为idagencyroom_typeratestart_date和{{ 1}}),对于一个很好的规范化结构,你应该有三个表,一个用于end_date,另一个用于agency,最后用于room_type。通过将rates移动到新表,可以更轻松地处理更多房间类型的添加。

room_type表格可以包含字段agencyid等。name会再次包含room_typeid等字段。 name将包含字段ratesidagency_idroom_type_idratestart_date

您可以使用两个内部联接end_date所有必填字段。问题是,当您尝试SELECT进入这些表格时,您将拥有一个新的room_type和代理机构。在这种情况下,您将不得不做三个单独的插入,但总体上仍然是一个更好的设计。

注意:我认为您在插入中缺少room_type(id或name)。