MySQL interesse |
|
Beste mensen,
ik heb een datumfunctie. Ik post een startdatum en een einddatum.
Vanaf de startdag tot en met de einddag worden de dagen berekend. Om eeen reden (de fout weet ik niet) wordt er soms een datum dubbel ingezet. Nu wil ik een soort controle dat er van elke datum maar 1 in de database gezet wordt.
Ik dacht zelf om dit toe te voegen ( $arr = array_unique($arr); ) in de functie, maar dat werkt niet, heeft iemand een tip?
Dit is de functie:
function dates_between3($startdate, $enddate){
$format = "Y-m-d";
(is_int($startdate)) ? 1 : $startdate = strtotime($startdate);
(is_int($enddate)) ? 1 : $enddate = strtotime($enddate);
if($startdate > $enddate){
return false;
}
while($startdate < $enddate){
$arr[] = $startdate;
$startdate += 86400;
}
$arr[] = $enddate;
return $arr;
}
function dates_between3($startdate, $enddate){ $format = "Y-m-d"; if($startdate > $enddate){ return false; } while($startdate < $enddate){ $arr[] = $startdate; $startdate += 86400; } $arr[] = $enddate; return $arr; }
En het script:
$_POST["uniekprijs"] = str_replace(",",".",$_POST["uniekprijs"]);
$dat = explode("-", $_POST["vandatum"]);
$vandatum1 = $dat[2] . "-" . $dat[1] . "-" . $dat[0];
$dat = explode("-", $_POST["totdatum"]);
$totdatum1 = $dat[2] . "-" . $dat[1] . "-" . $dat[0];
$datBetwArr = dates_between3($_POST["vandatum"],$_POST["totdatum"]);
if($insert){
foreach($datBetwArr as $time){
$date = date("Y-m-d", $time);
$iDayNr = (int) date("w", $time);
$beschikbaar = $_POST['beschikbaar'][$iDayNr];
$uniekprijs = $_POST['uniekprijs'][$iDayNr];
$min = $_POST['min'][$iDayNr];
$max = $_POST['max'][$iDayNr];
mysql_query("INSERT INTO test (hotel_id,kamer_id,datum,beschikbaar,uniekprijs,min,max)
VALUES('$hotel','$kamer','$date','$beschikbaar','$uniekprijs','$min','$max');",$link) or mooie_mysql_error($_SERVER['PHP_SELF']);
}
$_POST["uniekprijs"] = str_replace(",",".",$_POST["uniekprijs"]); $dat = explode("-", $_POST["vandatum"]); $vandatum1 = $dat[2] . "-" . $dat[1] . "-" . $dat[0]; $dat = explode("-", $_POST["totdatum"]); $totdatum1 = $dat[2] . "-" . $dat[1] . "-" . $dat[0]; $datBetwArr = dates_between3($_POST["vandatum"],$_POST["totdatum"]); if($insert){ foreach($datBetwArr as $time){ $date = date("Y-m-d", $time); $iDayNr = (int ) date("w", $time); $beschikbaar = $_POST['beschikbaar'][$iDayNr]; $uniekprijs = $_POST['uniekprijs'][$iDayNr]; $min = $_POST['min'][$iDayNr]; $max = $_POST['max'][$iDayNr]; mysql_query("INSERT INTO test (hotel_id,kamer_id,datum,beschikbaar,uniekprijs,min,max) VALUES('$hotel','$kamer','$date','$beschikbaar','$uniekprijs','$min','$max');",$link) or mooie_mysql_error($_SERVER['PHP_SELF']); }
|