Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在mysql中插入类似的值,但使用单个查询多次更改日期列_Php_Mysql - Fatal编程技术网

Php 在mysql中插入类似的值,但使用单个查询多次更改日期列

Php 在mysql中插入类似的值,但使用单个查询多次更改日期列,php,mysql,Php,Mysql,我正在为多家酒店开发一个预订系统,每个酒店都有多个房间类型,我想创建一个可用性日历。我的想法是,如果我可以重复插入预订详细信息名称、入住日期、退房日期、酒店名称……等等,比如说,我的入住日期是2014-12-28,退房日期是2015-01-07,我重复插入除签入日期之外的所有其他列的值,签入日期应增加到签出日期之前的日期,然后我可以使用行计数和每天每种房间类型的减法得出可用的房间 我被数据库卡住了…php代码…我似乎无法获取日期类型的html输入值作为我的开始日期 如果有人知道实现我的可用日历的

我正在为多家酒店开发一个预订系统,每个酒店都有多个房间类型,我想创建一个可用性日历。我的想法是,如果我可以重复插入预订详细信息名称、入住日期、退房日期、酒店名称……等等,比如说,我的入住日期是2014-12-28,退房日期是2015-01-07,我重复插入除签入日期之外的所有其他列的值,签入日期应增加到签出日期之前的日期,然后我可以使用行计数和每天每种房间类型的减法得出可用的房间

我被数据库卡住了…php代码…我似乎无法获取日期类型的html输入值作为我的开始日期

如果有人知道实现我的可用日历的更简单方法,请与我分享


谢谢你,节日快乐。

我建议你这样做:

1在HTML输入中,要求用户在YYYY-MM-DD/中输入日期,我认为您也在这样做

2在通过日期输入和日期输出提交循环时,检查可用性和显示

$availability="";
if( $date_in=date_create($_POST["check_in_date"]) && 
  $date_out=date_create($_POST["check_out_date"]) )
  {
    $interval = date_diff($date_in, $date_out)->format('%R%a')+1;
    for($j=0;$j<$interval;$j++){
         $date=date_add($date, date_interval_create_from_date_string('1 days'));
         $availability.="ON ".$date->format("Y-m-d").": ";

         //check in database and append to $availability as available...
         // ....in Hotel XXX,YYY room type AAA,BBB [as you want to display]
    }
 }
 else $availability="Enter dates correctly";

echo $availability;

请提供您的代码示例,以便于其他人帮助您。您的意思是什么?我可以使用行计数和每天每种房间类型的减法来获得可用的房间。??你想向用户展示每天不同酒店、房间类型的可用性吗??或者其他的??Adarsh Rajput是的,我想向用户展示不同酒店的可用性,以及相应的房间类型,为期约14天。@JeffersonSankara ok。。我来回答。但为什么要存储在数据库中呢。如果用户在看到可用性后关闭了窗口?最好从date\u in循环到date\u out,检查可用性并为每天生成HTML。并在此处添加表的列名,从中检查可用性,以更好地帮助您。
//code to store in database
// assuming table BOOKING (date,room_type,hotel_id)
//mentioning only required column, you may have more

$bookingDone=false;
if($confirmPayment && $date_in=date_create($_POST["check_in_date"]) && 
  $date_out=date_create($_POST["check_out_date"]) )
  {
    $interval = date_diff($date_in, $date_out)->format('%R%a')+1;

    mysqli_start_transaction($dbConnection);
    $bookingDone=true;
    for($j=0;$j<$interval;$j++){
         $date=date_add($date, date_interval_create_from_date_string('1 days'));

         //insert in database, $j is dayNo. Ex. in your case 28th will be first day...

         // $sql="INSERT INTO booking VALUES ('".$date->format("Y-m-d")."','".$selected_room_type_for_day[$j]."','".$selected_hotel_for_day[$j]."');

         if(!inserted) $bookingDone=false;
    }
    if($bookingDone) mysqli_commit($dbConnection);
    else mysqli_rollback($dbConnection);
 }
 else echo "An error occured";
 "SELECT count(1) as filled_room, hotel_id, room_type FROM booking WHERE date='".$date->format("Y-m-d")."' GROUP BY hotel_id,room_type;"

 "SELECT rooms_available-".$filled_room." FROM hotel_info WHERE hotel_id=".$hotel_id." AND room_type='".$room_type."';"

  //variable used in second query comes from first one & second will return available rooms
  // hotel_info table contains information about each hotels and no of rooms af perticuler type, value of `rooms_available` contains no of rooms in particular hotel.