Avatar billede hans01 Nybegynder
23. april 2011 - 10:26 Der er 14 kommentarer og
1 løsning

hjælp til et lille problem

jeg søger hjælp the et lille problem jeg har rodet med et stykke til. jeg er ikke nogen ørn til php programering.

jeg har en bestillings formular hvor man kan bestille ferie uger, jeg vil så gerne lave en bestillingskonfirmation, hvor den samlede pris indgår.

jeg har lavet følgende:

$pris[low] ="1400";
$pris[medio] ="1600";
$pris[high] ="1800";

$weeks = (strtotime($slut) - strtotime($start)) / (60 * 60 * 24 * 7);


$total = ($weeks) * ($start);

$dateLow = ('2011-20-05');
$datemedio = ('2011-06-16');
$datehigh = ('2011-09-20');

if ($start <= $datelow) AND ($start >= 2011-01-01);
if ($start <= $datemedio) AND ($start > $dateLow);
if ($start <=$datehigh) And ($start > $datemedio);
if ($start <2011-12-31) AND ($start > $datehigh);


dvs jeg har tre prisgrupper som hænger sammen med specifikke datoer

jeg savner en Then funktion, jeg tænker på

if ($start <= $datelow) AND ($start >= 2011-01-01)Then $_pris[low];
if ($start <= $datemedio) AND ($start > $dateLow)Then $_pris[medio];
if ($start <=$datehigh) And ($start > $datemedio) Then $_pris[high];
if ($start <2011-12-31) AND ($start > $datehigh)Then $_pris[low];

så er det jeg gerne til have prisen multipliceret med antal uger til en samlet pris.

Jeg håber ikke sp er for kryptisk, kan i hjælpe?
Avatar billede hans01 Nybegynder
23. april 2011 - 10:34 #1
ups jeg skal også have slut datoen i spil, den hedder $slut
Avatar billede repox Seniormester
23. april 2011 - 12:01 #2
Du er vist VB'er?

Din 'Then' funktionalitet ligger i indkapsling.
if( evaluering )
{
  //Dit Then ligger mellem denne indkapsling
}


Det betyder at din kode bør se nogenlunde sådan ud:
if ($start <=$datehigh) And ($start > $datemedio)
{
  $_pris["low"];
}


Men hele din struktur og syntaks giver ingen mening og vil ikke virke - det skal omskrives lidt:

if ($start <=$datehigh && $start > $datemedio)
{
  $_pris["low"]; // Dette giver heller ingen mening og bør også fejle
}


Men for at give dig den samlede pris, må vi udvide det yderligere:
if ($start <=$datehigh && $start > $datemedio)
{
  $samlet_pris = $_pris["low"] * $weeks;
}


Og ud skriver at du skal bruge variablen $slut - men til hvad?
Avatar billede repox Seniormester
23. april 2011 - 12:12 #3
Hold da op - jeg kiggede lige din kode igennem... der er masser af andre fejl... Har du testet noget af det du har skrevet ellers?
Avatar billede Slettet bruger
23. april 2011 - 12:42 #4
Jeg ville lægge alt den slags "bruger-venlighed" ude i browseren.
- og så kun koncentrere mig om validering på serveren (i PHP).

Og nok bruge ugenumre istedet for dato-intervaller. (Nemmere at forstå for brugeren, og at rette i hen af vejen, for dig)
=> Røde/gule/grøne uger ~ pris-barometer?
(evt. som en faktor der skal ganges med en grundpris, hvis du har flere .. huse/både?)

Lade badegæsterne "prikke" deres foretrukne uger, vise prisen med det samme, og først sende bestillingen til serveren når de er helt færdige..

Hvis det du sælger (sommerhus?) kan være booket (utilgængelig) bør brugeren også kune se dette med det samme (umuligt at prikke uge 32 (hvid/sort)), i stedet for at skulle frem-og-tilbage til serveren - dét er frustrerende.
- det KAN selvfølgelig ske at to badegæster ser en ledig uge "samtidig" og begge forsøger at booke den, så du slipper ikke helt for at løse den slags "konflikter", men det vil formodentlig være relativt sjældent..
Avatar billede hans01 Nybegynder
23. april 2011 - 13:23 #5
som i kan se er mit forsøg meget sølle,

jeg har rodet med det et stykke tid, men er ikke rigtigt fået hul på strukturen, jeg har en formular, hvor man kan bestille et feriehus, dvs jeg har en start dato, og en slut dato, afhængig af datoerne har jeg tre pris grupper, lav, medio og lav pris. Så jeg vil have php til udfra start og slut datoerne bestemme prisen som jeg så multiplicerer med antal uger. Dette er mit setup.

Er der nogen med en mere konkret ide, som ikke tager udgang punkt i mit tidligere forslag
Avatar billede hans01 Nybegynder
23. april 2011 - 13:26 #6
@Tom, jeg anvender en såkaldt datepicker hvad dato format er i intervaller.

Jeg ville ikke have php til at samkøre med mit kalendersystem, jeg ønsker folk skal sende en forespørgsel som jeg så senere bekræfter manuelt.

Ellers godt forslag, men det ligger nok også lidt over mit niveau. php/mysql mæssigt.
Avatar billede Slettet bruger
23. april 2011 - 14:00 #7
Men hvornår skal de have prisen at vide - først når du svarer tilbage manuelt ?
- OK, fint, hele SYSTEMET handler bare om at hjælpe dig med at regne den ud : )

Billig hvis hele ferien ligger før højsæssonen
Billig hvis hele ferien ligger efter højsæssonen
ellers Dyr

Så det handler om at definere hvornår højsæssonen starter og slutter = kun 2 skæringsdatoer:

if ($ferieSlut < $dyrPeriodeStart  ||  $ferieStart > $dyrPeriodeSlut)
    $pris = $weeks * $billig;
else
    $pris = $weeks * $dyr;
Avatar billede hans01 Nybegynder
23. april 2011 - 14:59 #8
Hej Tom. du kan se min bestillings formular her, hvis du udfylder den kan du se min konfirmations side, kan lige give et finger peg
Avatar billede hans01 Nybegynder
23. april 2011 - 15:10 #9
ok linket skulle lige med:

http://www.italien-ferie.dk/booking.php
Avatar billede Slettet bruger
23. april 2011 - 23:10 #10
Hej igen.

Selve sitet er enormt flot - ligner en international hotelkæde!
Men bookingen er for løs, jeg kan både vælge antal uger og start OG slut-dato, med en "venlig henstilling" om at starte/slutte på en lørdag
- Men det gælder jo ikke OS. "Mig og konen kommer fredag aften og bliver til søndag formiddag"

Du skrev godt nok at du ikke ville samkøre med "kalendersystemet"..
Men det behøver jo ikke at være "det rigtge" - bare en lille database med bookede/fri uger, som du selv "vedligeholder" fra browseren..

Tror i hvertfald du bør droppe datepickerne, og erstatte dem med én start-uge-vælger (og beholde Antal-uger-vælgeren).
F.eks. en drop-down med de ledige uger:
.
..
uge 28 (Lørdag 11. juni - lørdag 18. juni)
...
uge 32 (Lørdag 3. juli - lørdag 10. juli)
uge 33 (Lørdag 10. juli - lørdag 17. juli)
...
uge 36 (Lørdag 2. august - lørdag 9. august)
..
.
Tror det vil "animere" folk til at få fingeren ud og booke, når de kan SE muligheden..
Avatar billede hans01 Nybegynder
27. april 2011 - 09:06 #11
Undskyld jeg ikke har svaret et stykke tid, men jeg har været i tænke boks. Jeg har nu ændret lidt på bestillings formularen, jeg modtager nu en start dato (uge nummer) og en slut dato (uge nummer)

jeg har også oprettet to tabeller i min database en tabel weeks, med to kolonner, en Pris_id og en uge nummer, desuden en tabel Pris_var med to kolonner en Pris_id og en pris.

Er der nogen med en ide til hvordan jeg beregner en samlet pris.

formularen ligge her http://www.italien-ferie.dk/booking.php, hvis i laver en test kommer bekræftelses siden frem hvor den samlede pris skal fremgå.
Avatar billede hans01 Nybegynder
29. april 2011 - 11:59 #12
Ingen?
Avatar billede Slettet bruger
29. april 2011 - 12:50 #13
Jeg synes stadig prisen skal vises inden man klikker "SEND"
Hvis du lagde priserne med ud i browseren - evt. (også) synligt i uge-drop-down-boksene

Men det må handle om en løkke (javascript eller PHP):
dato = startDato; pris = 0
while (dato < slutDato)
    {
    pris = pris + lookupPris(dato)
    dato = dato + 7
    }


Når du har både start- og slut-datoer, er feltet "Antal uger" overflødigt.
- men det er forvirrende på den måde - hvis jeg f.eks. kun vil leje huset i én uge, skal jeg så vælge samme dato i begge bokse, eller "slutdato" en uge efter "startdato" - men i så fald 2 ugenumre..?
Tvivl = frygt = nej tak.
- Bedre med kun startdato (som nu) + antal uger = ingen tvivl.

Og hvorfor må enlige med 5 børn ikke være med : )
Bedre: Et felt til antal voksne, og et til antal børn ~ drop "Antal personer".

[Country] - med Vatikanet, Mongoliet og Zimbabwe.. Et det virkeligt nødvendigt ?
- HAR de overhovedet postnumre på Midway Islands ?
Avatar billede hans01 Nybegynder
29. april 2011 - 14:30 #14
hej tom

du har nok ret mht det med prisen inden send.

jeg prøver lige at ændre til dit forslag om en start dato og antal uger.

det med landekoderne er en menu jeg har downloaded fra nettet, måske lidt for specifik.
Avatar billede hans01 Nybegynder
26. juli 2011 - 06:46 #15
lukker og slukker
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester