我的php项目中有两个表。第一个表的主键是另一个表的外键。我有一个表单,我可以选择开始日期,结束日期,开始时间,结束时间和金额字段。当用户点击提交按钮时,我将从开始日期循环到结束日期,并且对于每个日期,循环应该从开始时间到结束时间与1小时差异。开始日期可以是1个月,1年或更长。现在,如果我选择1个月的开始日期和结束日期限制,我在插入记录时没有任何问题。但是,如果我选择3个月的日期,那么在第一张表中插入记录需要花费太多时间。从第一个表插入id我将在该日期的开始时间和结束时间之间循环,差异为1小时,并在第二个表中插入记录。现在用于在表格中插入数据我正在使用以下代码。
if(!empty($datetimerangearr)){
foreach($datetimerangearr as $datetime){
$dateexplod = explode(" ",$datetime);
$placedate = $dateexplod[0];
$placetime = $dateexplod[1];
$bookedplaceid = $opobj->getvalue("tbl_place","place_id","item_id = :item_id AND date = :date AND time = :time",array("item_id" => $productid, "date" => $placedate, "time" => $placetime));
if($bookedplaceid == ""){
$selplaceid = $opobj->insert("tbl_place","item_id,maxplace,place,date,time,status",":item_id,:maxplace,:place,:date,:time,:status",array("item_id" => $productid, "maxplace" => $maxplacepertour, "place" => $maxplacepertour, "date" => $placedate, "time" => $placetime, "status" => "1"));
if(!empty($_REQUEST["checkedprice_id"])){
$insrtflg = 0;
foreach($_REQUEST["checkedprice_id"] as $k => $priceid){
if(isset($_REQUEST["showfirst"][$k][0]) && $_REQUEST["showfirst"][$k][0] != ""){
$showfirstopts = 1;
}else{
$showfirstopts = 0;
}
$opobj->insert("tbl_placeprice","place_id,price_id,showfirst",":place_id,:price_id,:showfirst",array("place_id" => $selplaceid, "price_id" => $priceid, "showfirst" => $showfirstopts));
$insrtflg = 1;
}
}
}else{
$placebookdflg = "1";
}
}
}
$datetimerangearr
是一个包含从开始日期到结束日期的所有日期的数组。如果我选择3个月间隔的开始日期和结束日期,那么插入记录需要15分钟或更长时间。
任何帮助将不胜感激。在此先感谢。