29. december 2003 - 01:49Der er
20 kommentarer og 1 løsning
finde ud af om et tidspunkt er imellem et tidspunkt (sikker nem)
Hej Eksperter :)
Jeg har et rimeligt stort problem jeg slet ikk kan gennemskue... ret sikkert fordi kl er 1:46 om natten og jeg burde gå i seng, men kan alligevel ikke få ordenlig nattesøvn inden jeg er færdig...
Jeg har en plan hvor der er nogen aktiviteter på. De er skrevet med fra og til med php's time() function.
et eksempel kunne være opvask: fra: 12432534523 til: 432432523532
nu skal jeg så kunne sætte noget mere på, men det skal jo selvfølgelig ikke kunne lade sig gøre at lave noget imens jeg er ved det andet så hvordan skal jeg sætte en if sætning op?
variablerne til brug er: $fra $til den nye ting jeg gerne vil oprette
$gammel_fra $gammel_til den ting jeg har i forvejen
det jeg har nu (som ikk virker) ser således ud: if ($fra > $gammel_fra && $fra < $gammel_til && $til < $gammel_til && $til > $gammel_fra) {
håber der er nogen der kan hjælpe - på forhånd tak!
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
ja, det handler om om tidspunktet x (fra $fra til $til) ligger mellem $gammel_fra og $gammel_til
det er lidt svært at forklare
det er en kalender. Der skal det jo ikke være muligt at booke en tid 2 gange, og det skal jo heller ikk være muligt at hvis man fx har en tid fra kl 14:45 til 15:40 så skal man jo ikk bagefter kunne bestille 12:40 til 19:20 eller tiden: 14:55 til 15:10 hvis det bedre er til at forstå nu?
problemet er at du ikke, kun bevæbnet med gl_fra, gl_til, fra og til, kan bedømme om en given aftale/reservation er mulig.... Du bliver nød til at arbejde med en array af alle aftaler for en given dag...
Jeg har noget Javakode (eller er det SQL...??!) fra mit Datamatiker hovedprojekt) - lad mig lige se om jeg kan finde det
jeg har en php kode der skal finde ud af det som ser sådan her ud:
function fribooking($fra,$til,$dato,$maned,$ar,$bruger) { //bruger kommer fra en session $status = "fri";
$foresp = mysql_query("SELECT * FROM webcal_note WHERE bruger = '$bruger' AND dato = '$dato' && maned = '$maned' && ar = '$ar'") or die(mysql_error()); while($row = mysql_fetch_array($foresp)) { $gammel_fra = $row["tidspunkt_fra"]; $gammel_til = $row["tidspunkt_til"];
if (fribooking($fra,$til,$_POST[opret_fra_dato],$_POST[opret_fra_maned],$_POST[opret_fra_ar],$_POST[opret_bruger])==true) { mysql_query("insert into webcal_note (bruger,dato,maned,ar,hour,min,status,besked,tilfojer,tidspunkt_til,tidspunkt_fra,oprettet) values ('$_POST[opret_bruger]','$_POST[opret_fra_dato]','$_POST[opret_fra_maned]','$_POST[opret_fra_ar]','$_POST[opret_fra_time]','$_POST[opret_fra_min]','afventer','$_POST[opret_opgave]','$_SESSION[loginnick]','$til','$fra','$phptime')") or die(mysql_error()); echo" alert('Aktiviteten blev oprettet med succes!'); return false; "; } else { echo" alert('Tidspunktet er allerede booket!'); return false; "; } }
hvad jeg har er en SQL forspørgsel, som kan bedømme om der er andre aftaler i et givent tidsrum - hvis der ikke returneres et tom søgesæt betyder dette, at der forefindes aftaler i det givne tidsrum, og at den ønskede aftale derfor ikke kan oprettes....
er du interesseret i den kode ? (jeg skal hente den ud fra et worddokument, så jeg skal vide, inden jeg går igang, om du er intersseret - dette betinger så at dine aftaler ligger i en database og at det bliver et SQL kald som afgør, om det er muligt eller ej...)
prøv at lave det således at $fri som ugangspunkt bliver sat lig true og at den derefter _KUN_ kan sættes false - ellers kan man komme i en situation, hvor $fri _er sat_ til false, men derefter bliver overskrevet med en true - og det går jo ikke....
der er to fundementale fejl i den kode, som du har vist @02:37:37
1) $status kan godt sættes til "fri", selvom den, ved en tidligere aftale, er sat til "booked" - det må det ikke... hvis den først er sat til "booked" så burde der returneres en false, med det samme
2) din kode forudsætter kun at en ønsket ny aftale ligger inden i en periode, som allerede er markeret som en aftale - den tager f.eks. ikke hensyn til, hvis den nye ønsket aftale delvis eller helt overlapper en anden aftale - eller overlapper flere aftaler...
har du en mail / MSN messenger, som jeg kan sende et word-dok til - der er en figur med i det word-dokument, som nok vil give noget lys på sagen - som desværre ikke er til at gengive i dette tekstbaserede forum...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.