klaaspeter
Gebruiker
- Lid geworden
- 20 nov 2010
- Berichten
- 377
Hallo allemaal
Ik ben bezig met een urenprogramma aan te passen. Alleen is er 1 stukje waar ik niet uit kom, en dit is wel een belangrijk stukje.
Mijn probleem is. Dat als ik tijd toevoeg, met begin en eindtijd dat ik of slecht maar 1 maal kan toevoegen voor 1 gebruiker of als ik de controleer code weg haal steeds kan herhalen dus betekend dat er dubble records in mijn tabel kunnen komen. dat wil ik niet.
nou dacht ik de code zo te hebben aangepast dat dit zou werken maar helemaal werkt het niet misschien dat jullie mij kunnen helpen dit is mijn code.
op het moment kan dus zoveel keer als ik wil de zelfde tijden opslaan. haal ik userid weg dan kan dit niet meer en kan ik maar 1 keer per dag dus bijvoorbeeld begintijd 10:00 en als eindtijd 12:00 opslaan.
Wie o Wie kan mijn helpen!
Ik ben bezig met een urenprogramma aan te passen. Alleen is er 1 stukje waar ik niet uit kom, en dit is wel een belangrijk stukje.
Mijn probleem is. Dat als ik tijd toevoeg, met begin en eindtijd dat ik of slecht maar 1 maal kan toevoegen voor 1 gebruiker of als ik de controleer code weg haal steeds kan herhalen dus betekend dat er dubble records in mijn tabel kunnen komen. dat wil ik niet.
nou dacht ik de code zo te hebben aangepast dat dit zou werken maar helemaal werkt het niet misschien dat jullie mij kunnen helpen dit is mijn code.
PHP:
/**
* Does checks on a record with a starttime and endtime in it
* before it is converted and goes into the database
*/
function performTimeChecks(&$record)
{
$RECstartH = $record["starttime"]["hours"]*1;
$RECstartM = $record["starttime"]["minutes"]*1;
$RECstartS = $record["starttime"]["seconds"]*1;
$RECendH = $record["endtime"]["hours"]*1;
$RECendM = $record["endtime"]["minutes"]*1;
$RECendS = $record["endtime"]["seconds"]*1;
// Check if the endtime isn't before the starttime
if ($RECstartH>$RECendH ||
($RECstartH==$RECendH && $RECstartM>$RECendM) || ($RECstartH==$RECendH && $RECstartM==$RECendM && $RECstartS>$RECendS))
{
triggerError($record, "starttime", "error_begintime_before_endtime");
return;
}
if (($RECstartH==$RECendH)&&($RECstartM==$RECendM)&&($RECstartS==$RECendS))
{
triggerError($record, "starttime", "error_begintime_equals_endtime");
return;
}
// Check if that period is still available
//Datum werd al zo opgeroept, heb alleen userid toegevoegd.
$select = $this->selectDb("tabel.activitydate = '".$record['activitydate']['year']."-".$record['activitydate']["month"]."-".$record['activitydate']["day"]."'", "tabel.userid = '".$record["userid"]."'");
foreach ($select as $dbrecord)
{
convertDurationToHours($dbrecord,true);
//nu dacht ik als userid voor starttime wegzet dat die dan kijkt van userid en daarna pas naar de starttime maar dit gebeurd niet.
$DBstartH = $dbrecord["userid"]["starttime"]["hours"];
$DBstartM = $dbrecord["userid"]["starttime"]["minutes"];
$DBstartS = $dbrecord["userid"]["starttime"]["seconds"];
$DBendH = $dbrecord["userid"]["endtime"]["hours"];
$DBendM = $dbrecord["userid"]["endtime"]["minutes"];
$DBendS = $dbrecord["userid"]["endtime"]["seconds"];
if (
// Check if endtime of this record is earlier or the same as the starttime of this entry
!($DBstartH>$RECendH || ($DBstartH==$RECendH && $DBstartM>$RECendM) ||
($DBstartH==$RECendH && $DBstartM>$RECendM ||
($DBstartM==$RECendM && $DBstartS>=$RECendS))
||
// Check if starttime of the record is later or the same as the endtime of this entry
($RECstartH>$DBendH || ($RECstartH==$DBendH && $RECstartM>$DBendM) ||
($RECstartH==$DBendH && $RECstartM<$DBendM ||
($DBstartM== $RECendM && $RECstartS>=$DBendS)))))
{
triggerError($record, "starttime", "error_time_already_registered");
return false;
}
}
return true;
}
op het moment kan dus zoveel keer als ik wil de zelfde tijden opslaan. haal ik userid weg dan kan dit niet meer en kan ik maar 1 keer per dag dus bijvoorbeeld begintijd 10:00 en als eindtijd 12:00 opslaan.
Wie o Wie kan mijn helpen!
