Avatar billede hans01 Nybegynder
14. december 2011 - 10:33 Der er 32 kommentarer og
1 løsning

lejligheds booking system

jeg har rodet meget lidt med PHP så jeg er ikke nogen ørn. så måske kan nogen hjælpe.

jeg har en lille html formular hvor man kan bestille en lejlighed begyndende fra en bestemt uge(input felt) og et andet inputfelt med antal uger,

når man har udfyldt formularen ryger man på en bekræftelses side hvor der er meningen ens valg bliver vist. f.eks, "du har bestilt lejligheden fra uge 33 - uge 35 den samlede pris er Kr. xxxx.00"

so far so good.

nu er det af jeg anvender 3 forskellige takster afhængig af sæsonen(uge nummer)

Er der nogen der kan hjælpe med at udfra uge nummer, pris og antal uger flække en kode sammen til mig?
14. december 2011 - 10:45 #1
Du kommer nok til at fortælle hvor din applikation kender lejlighederne og priserne på lejlighederne.  Har du det stående i tabeller i en mysql database eller hvordan?
Avatar billede hans01 Nybegynder
14. december 2011 - 11:07 #2
Hej Christian


Nej ikke endnu, jeg har dog prøvet et rode lidt med det, den lægger alle andre oplysning in i sql basen
Avatar billede hans01 Nybegynder
14. december 2011 - 11:11 #3
PS der er kun en lejlighed
14. december 2011 - 11:21 #4
'Oplysninger i sql basen' - hvilken sql base?  Anvender du en mysql database i din applikation?  Og du har tre forskellige takster afhængige af sæson.  Hvor har du disse oplysninger stående?  Kun i hovedet endnu, eller et eller andet sted?  Der er kun en lejlighed, siger du.  Hvor gemmer du oplysninger om den lejlighed?  Det er nok mig, der er for dum til det her, men jeg kommer til at vide lidt mere eller også bakke ud.
14. december 2011 - 11:22 #5
...du har prøvet at rode med det, siger du.  Vis hvor langt du selv er kommet.
Avatar billede hans01 Nybegynder
14. december 2011 - 11:33 #6
Hej Christian

Jeg er ked af det med oplysningerne, men jeg ved jo ikke hvilke der er relevante og hvilke der ikke er. jeg vil meget meget gerne give dig alle info, der er intet hemmeligt i det.

Ja navn, adresse, start dato antal uger bliver lagret i en sql database, her har jeg så på en eller anden måde at lave en sammenhæng imellem prisen (uge) og ugen, så jeg kan trække denne ud af basen igen.

lad os antage en person bestiller uge 31 og 32 (dvs) to uger.  den ene uge(31) koster kr. 800 og den anden(32) koster kr. 1000, så skal jeg dels have disse info ind basen og dels hevet dem ud igen og bekræte hans to uger koster LKr. 1800, på en eller anden måde.
Jeg har en lejlighed med 3 pris grupper.

Jeg håber dette ikke er for forvirret
14. december 2011 - 11:51 #7
Det ville have været mindre forvirrende, hvis du ville have svaret på mine konkrete spørgsmål, først hvilket databasesystem du bruger (er det mysql eller hvad) og så hvordan du har lagret hvad prisen er i de forskellige uger.  Du har 'på en eller anden måde lavet en sammenhæng mellem prisen (uge) og ugen' men du vil ikke fortælle hvordan. 

Jamen så må jeg hellere stoppe med at spilde din tid.  Jeg håber der er medlemmer der bedre kan fortolke dine oplysninger og yde hjælp.
Avatar billede hans01 Nybegynder
14. december 2011 - 12:03 #8
Ok, jeg er ked af jeg har forvirret dig. Jeg håber på lidt mere tålmodige folk.

Men mange tak for din interesse. Christian
Avatar billede tobrukDk Novice
14. december 2011 - 14:03 #9
Undskyld jeg bare lige sådan kommer ind men jeg forstår altså heller ikke noget at det som du prøve at forklare os. :(
Avatar billede cpfrande Nybegynder
14. december 2011 - 15:54 #10
Hej hans01,

Jeg formoder du bruger en MySQL-database.
Hvordan er din database-struktur (hvilke tabeller har du? hvilke felter har disse tabeller?)?

Og kan jeg komme til at se koden til bestillings-siden samt bekræftelses-siden?

Ovenstående vil på sin vis kunne besvare næsten alle spørgsmål, som de andre herinde har stillet også :-)

Vi tales ved...

/Kristian
Avatar billede hans01 Nybegynder
15. december 2011 - 08:23 #11
Ok jeg vil prøve at forklare, men please vær lidt tålmodige.

Jeg har en formular med to felter en start dato(uge) og et felt med antal uger, denne formular har jeg linket til en mysql data base, her har jeg tre tabeller min_tabel, hvor start dato(uge) og antal uger lagres. så har jeg en tabel som jeg har døbt Pris_var med to felter en PrisID og et Pris felt. dernæst har jeg en tabel som kaldes Weeks, med endnu to felter med PrisID igen og et felt med ugen nummer.

Indtil videre ser min bekræftelse side således ud.

<table width="323" border="0">
        <tr>
                <td width="125" bgcolor="#EDECE4"><p>G&aelig;st navn:</p></td>
                <td width="278" bgcolor="#EDECE4"><? echo "" . $name ."";?></td>
        </tr>
        <tr>
                <td bgcolor="#EDECE4"><p>Ankomst dato:</p></td>
                <td bgcolor="#EDECE4"><? echo "" . $start . "";?></td>
        </tr>
        <tr>
                <td bgcolor="#EDECE4"><p>Antal uge(er):</p></td>
                <td bgcolor="#EDECE4"><? echo "" . $weeks .  "";?></td>
        </tr>
        <tr>
                <td bgcolor="#EDECE4"><p>Antal personer: </p></td>
                <td bgcolor="#EDECE4"><? echo "" . $nopeople . "";?></td>
        </tr>
</table>


<div id="pris"><table width="300">
        <tr>
                <td width="136" bgcolor="#FF9933"><p>Lejepris:</p></td>
                <td width="152" bgcolor="#CCCCCC">Dkr. <? echo "" . $samlet_pris . ""; ?>,00</td>
        </tr>
        <tr>
                <td bgcolor="#FF9933"><p>Skat: 0%</p></td>
                <td bgcolor="#CCCCCC">Dkr. 0,00</td>
        </tr>
        <tr>
                <td height="17" bgcolor="#FF9900"><p>Totalt at betale:</p></td>
                <td bgcolor="#CCCCCC">Dkr. <? echo "" . $total . ""; ?>,00</td>
        </tr>
</table>

Jeg håber dette er lidt mere oplysende..
Avatar billede cpfrande Nybegynder
15. december 2011 - 09:29 #12
Hej Hans01,

Jeg har skam tålmodighed.

Kan du sende hele koden på dine filer? Evt. upload dem via www.gratisupload.dk. Problemet er at jeg ikke kan se noget kode, der henter data eller gemmer data i din MySQL database ud fra det du har sendt der.

Har du mulighed for at udlæse en MySQL-dump af dine tre tabeller også, og evt. uploade på www.gratisupload.dk ?

Bare så jeg kan se hvordan din database-struktur 100 % er.

Umiddelbart forstår jeg ikke hvorfor du har de tre tabeller, og jeg forstår ikke i hvilken tabel du gemmer data om hvad brugeren har bestilt (du har jo ingen kundedata i nogen af de tabeller?).
Avatar billede hans01 Nybegynder
15. december 2011 - 09:33 #13
Jeg har ingen problemer med at få data fra formularen ind i basen og ud igen. jeg prøver lige at at lave en dump.
Avatar billede hans01 Nybegynder
15. december 2011 - 09:39 #14
så er screen dumpen lavet http://gupl.dk/670458/ håber meget det hjælper
Avatar billede cpfrande Nybegynder
15. december 2011 - 09:44 #15
Hej igen,

Ahh okey - det gav et lidt bedre indblik i hvordan du har lavet databasestrukturen.

Så mangler jeg blot lige at kunne se hele koden i begge dine filer...? Kan du uploade dem også?
Avatar billede hans01 Nybegynder
15. december 2011 - 09:51 #16
min php kode til at loade info i basen ser sådan ud

<?php

ini_set("SMTP","smtp.xxxxx.dk");
$modtager = "xxxx@xxxxx.dk>";
  $emne = "Booking af hus";
  $indhold = "Der er en forespørgsel på huset";
    foreach($_POST AS $key => $value)
  {
      $indhold .= $key . " = " .  $value . "\n";
  }

mail($modtager,$emne,$indhold);

require("connect.php");
if(isset($_POST)){
$name = $_REQUEST["name"];
$streetno = $_REQUEST["streetno"];
$zip = $_REQUEST["zip"];
$city = $_REQUEST["city"];
$country = $_REQUEST["country"];
$telephone = $_REQUEST["telephone"];
$mail = $_REQUEST["mail"];
$nopeople = $_REQUEST["nopeople"];
$noadults = $_REQUEST["noadults"];
$nochildren = $_REQUEST["nochildren"];
$start = $_REQUEST["start"];
$weeks = $_REQUEST["weeks"];
$remarks = $_REQUEST["remarks"];
mysql_query("insert into min_tabel(kundeID, name, streetno, zip, city, country, telephone, mail, nopeople, noadults, nochildren, start, weeks, remarks)values(0, '$name', '$streetno','$zip','$city','$country','$telephone','$mail','$nopeople','$noadults','$nochildren','$start',' $weeks',' $remarks')")or die(mysql_error());
}
?>
<?
$my_start = "start";

?>

min connect php kode er sådan:

<?php
$username = "xxxxx";
$dbname = "xxxxx";
$password = "xxxxx";
$hostname = "localhost:3306"; //Plejer at v&aelig;re localhost
$dbh = mysql_connect($hostname, $username, $password)or die("Unable to connect to MySQL");
mysql_select_db($dbname, $dbh) or die("Unable to select DB");
?>


jeg håber dette er dem du mener
16. december 2011 - 07:02 #17
hans01, nu kom du så alligevel med lidt flere oplysninger, men i dråbeformat.  Jeg forstår ikke, hvorfor du har været så tilbageholdende.  Det er da dig, der beder om hjælp til en opgave og som derfor må være interesseret i at fortælle det nødvendige, ikke os andre, der beder om lov til at hjælpe og hvor det så er fair at vi skal gætte.

Jeg tror problemet starter med din database struktur.  I min_tabel, bortset fra kundeID som er et tal så bevarer du alle de andre data som tekststrenge.  For eksempel hvis du under weeks har 2 stående, så opfatter databasen det ikke som et total man kan lave regnestykker med men som en tekst "2".  Jeg forstår, at start og slut skulle være ugenumre og weeks skulle være antal uger, så dem skal du bevare som tal for at du kan bruge oplysningerne til at beregne en pris.  Ligeledes, men ikke del af dette problem, skulle nopeople, noadults, og nochildren vel også have været tal.  Det vil jeg foreslå at du retter på følgende måde:

Først laver du en kopi af tabellen ved at klikke på Operations, og så i den skærm du får under Copy table to i det tomme felt skriver du, for eksempel, my_tablecopy, og så klikker du på Go.

Derefter klikker du på blyanten ud for weeks.  I den skærm du får har du under Type et felt, hvor der står VARCHAR.  Der trykker du på den lille trekant, og i den liste du får klikker du på INT og derefter trykker du på save.  Du vil så se, at Type for weeks er ændret til INT.  Det vil sige, at tabellen nu opfatter dataerne som tal.

På samme måde ændrer du datatyperne for start og slut (og nu du er i gang, også for nopeople, noadults, og nochildren.)

Når du er færdig, så tryk på Browse for at få at se hvad der nu står i tabellen.  Det kan være, at nogle af dataerne er gået tabt ved at skifte datatype, men så henter du oplysningerne fra min_tablecopy.  Du ved, at når du i browse mode trykker på en blyant i en række, så får du en skærm hvor du kan ændre oplysningerne i denne række.

Du fortæller så, at du har to andre tabeller, Pris_var og Weeks.  Se efter, om du der også har varchar som type hvor det skulle have været INT og ret det i så fald, og lad os så se en screendump af disse tabeller også.  Så er vi ved at være der henne, hvor der kan foreslås en løsning.
Avatar billede hans01 Nybegynder
16. december 2011 - 07:39 #18
Hej Christian.

Jeg var ikke helt klar over hvad detr var nødvendig af oplysninger, jeg har rodet en helvedes masse med det, så jeg var nu heller ikke sikker på om jeg var helt hen i skoven, jeg ryger lige i gang med dine forslag. tusing takkker
Avatar billede hans01 Nybegynder
16. december 2011 - 08:12 #19
her er screen dump http://gupl.dk/670491/
19. december 2011 - 09:27 #20
Jeg har været uden internet adgang i et par dage, og nu er jeg kun lige på for et øjeblik.  Jeg er tilbage i overmorgen.  I mellemtiden fortæl hvordan det går med at 'ryge i gang med mine forslag.'
Avatar billede hans01 Nybegynder
19. december 2011 - 10:17 #21
Hej christian, det skulle være gjort se sceen dump
21. december 2011 - 11:05 #22
Så er jeg hjemme ved computeren igen.  Og nu må jeg prøve at kombinere de oplysninger du giver.

1.  Du har (som du siger i #11) en formular (som du ikke viser) hvor brugeren indfører startuge og antal uger og (sandsynligvis) klikker på en knap.

2.  Når så brugeren har klikket på knappen, så kaldes den kode du viser i #16 plus den kode du viser i #11.  Først, med koden #16, sendes der en email til brugeren, derefter overføres dataerne til databasen.  Derefter, med koden #11, vises den tabel hvor koden er i #11, og kærnen i dit spørgsmål er vel hvordan man får fat på lejeprisen til at fylde i variabelen $samlet_pris i denne kode:

<tr>
    <td width="136" bgcolor="#FF9933"><p>Lejepris:</p></td>
    <td width="152" bgcolor="#CCCCCC">Dkr. <? echo "" . $samlet_pris . ""; ?>,00</td>
</tr>

3.  Inden brugeren udfylder formularen har du allerede udfyldt database tabellerne weeks og pris_var.

Eftersom du har start ugen i variabelen $start, kan du udtrække prisen for start ugen fra databasen således:

$result = mysql_query("SELECT pris from weeks JOIN pris_var ON weeks.PrisID = pris_var.prisID WHERE weeks = $start");
$uge_pris = mysql_result($result, 0);

Hvis brugeren bestiller to uger, så får du prisen på uge nummer 2 ved at lægge 1 til $start og så køre den samme query en gang til.  For at automatisere det, foreslår jeg, at du først sætter $samlet_pris = 0, og derefter i en løkke kører queryen $weeks gange.  Det kan gøres således:

$samlet_pris = 0;
for($i = 0; $i < $weeks; $i++)
{
  $start = $start + $i;
  $result = mysql_query("SELECT pris from weeks JOIN pris_var ON weeks.PrisID = pris_var.prisID WHERE weeks = $weeks");
  $uge_pris = mysql_result($result, 0);
  $samlet_pris = $samlet_pris + $uge_pris
}

Denne kode skal indsættes mellem koden #16 koden #11. Det kommer du nok til at rode med.  Det kan for eksempel være, at værdierne i $start og $weeks er tekststrenge.  I så fald får du dem lavet om til tilværdier ved at sige $weeks = intval($weeks); o.s.v.
Avatar billede hans01 Nybegynder
22. december 2011 - 08:29 #23
Hej Christian

Jeg har indsat dit forslag: $result = mysql_query("SELECT pris from weeks JOIN pris_var ON weeks.PrisID = pris_var.prisID WHERE weeks = $start");
$uge_pris = mysql_result($result, 0); i min svar tabel #11 og tilføjet or die. Jeg modtager dog denne fejlmeldning: Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\W3Sites\italienferie\www\application.php on line 313
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '17 (lørdag 23. April)' at line 1

Det er en lidt gammel udgave af php og mysql der kører på serveren.
Avatar billede hans01 Nybegynder
22. december 2011 - 08:34 #24
Hvis jeg prøver at ændre start og weeks til talværdier modtager jeg følgende fejl:

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\W3Sites\italienferie\www\application.php on line 315
Unknown column 'weeks' in 'where clause'
22. december 2011 - 11:26 #25
Det ser ud som om $start indeholder værdien '17(lørdag 23. April)' .  Mit kodeforslag var baseret på den antagelse, at $start indeholder et tal, ugenummer, og intet andet, og at felterne weeks og start i tabellerne også indeholder tal og intet andet.
Avatar billede hans01 Nybegynder
22. december 2011 - 14:13 #26
Hej christian

jeg har lagt min formular op her http://www.italien-ferie.dk/booking.php

jeg syntes at et felt der udelukkende bestod af et uge nummer var uoverskueligt, jeg kan personligt aldrigt huske det med uge numrene.

Måske har du et helt andet og bedre forslag til en bestilling formular?
22. december 2011 - 16:25 #27
Jamen det kommer helt bag på mig.  Gennem hele tråden har jeg opfattet, at det drejede sig om ugenumre, altså et tal.  Det var også baggrunden for mine forslag til database tabellerne, som vel nu ikke vil virke, da start ikke er et tal.

Jeg kommer til at stoppe nu.  Det er ikke realistisk, at vi bruger mere af hinandens tid derpå, når vi kommunikerer så dårligt.  Og du får desværre næppe nye indlæg nu da spørgsmålet efterhånden står på side 15.  Jeg vil foreslå (og bede om) at du lukker tråden, og at du så opretter en ny tråd der får frisk opmærksomhed fra alle Ekspertens medlemmer, og hvor du så giver flere relevante oplysninger. 

Det drejer sig om er, at folk booker ferie ved hjælp af en html form, og prisen skal så beregnes ud fra feriens startdato og antal uger, baseret på en pris for hver ugenummer.  Du bør absolut give linket til formularen, så folk kan se koden bag ved, og du bør vise database tabellerne med det samme.

Jeg opretter dette som svar, idet jeg håber at have været medvirkende til, at du formulerer dit næste spørgsmål bedre.  Det er op til dig, om du vil acceptere svaret, eller om du vil lukke ved selv at oprette et svar og acceptere det.
Avatar billede hans01 Nybegynder
23. december 2011 - 07:09 #28
Nå men tak for hjælpen..
Avatar billede cpfrande Nybegynder
23. december 2011 - 07:40 #29
Min personlige vurdering er, at opgaven er for stor til, at du får fornuftig "gratis" hjælp herinde. Opgaven er simpelthen for omfattende og omhandler for mange ting. Eksperten.dk er mere til en konkret problemstilling.

Det bedste ville være, at du lavede en kravspecifikation og fik en til at kode det for dig i stedet.

Jeg kan godt hjælpe, men i det tilfælde bliver det mod betaling. Har det interesse, kan du jo smide mig en intern besked herinde til mig.

God jul !
Avatar billede hans01 Nybegynder
23. december 2011 - 09:37 #30
Hej cpfrande

Jeg var ikke klar over det var så stor en opgave at vise en pris baseret på nogle uge numre.

Christian har stort set lavet hele koden, nu skal den bare rettes til, men ok jeg bøjer mig der er ingen der vil hjælpe..

God Jul til alle
Avatar billede cpfrande Nybegynder
23. december 2011 - 10:10 #31
Hej igen,

Problemet er heller ikke at finde frem til det. Problemet er at der er så mange andre problemstillinger i det også.

Det har jo vist sig, at det ikke kun er udskrivningen af uge numre. Der har skulle tilpasses ting i din MySQL database og meget mere.

Dertil gemmes der andre data end først forventet, hvilket gør at svaret til hvordan det kunne udregnes pludselig er forkert.

Det er vel også årsagen til at Christian har valgt at stoppe det, og bedt dig om at oprette sagen på ny. Jeg siger blot, at jeg ikke tror, at du får særlig meget ud af det, da sagen som sagt er mere omfattende end "blot at udregne prisen ud fra ugenumre". :-)

Der er masser der vil hjælpe. Jeg vil også gerne. Men jeg vil ikke gå ind og assistere i "større" opgaver herinde af princip. I det tilfælde tilbyder jeg i stedet mine kompetencer ved siden af - som man så betaler for at få.

Ikke alt i verdenen er jo gratis.

Glædelig jul ! :-)
Avatar billede hans01 Nybegynder
23. december 2011 - 10:24 #32
Hør nu her, jeg havde lavet et forkert uge format der bestod af et uge nummer samt en dato, hvor christian troede det "kun" drejede sig om et tal, jeg har nu ændret formatet til et uge nummer, og prøvet igen.

Nu er det sådan at jeg sagtens kan leve uden at kunne lave denne detalje, jeg syntes bare det kunne være skæg at prøve at arbejde lidt i php. så jeg har prøvet at skrue noget sammen, og er løbet lidt sur i det, derfor bed jeg om en håndsrækning.
Avatar billede cpfrande Nybegynder
23. december 2011 - 11:51 #33
Fair nok.

Jeg tror desværre, at du forventer for meget af eksperten.dk i så fald.

Jeg vil forslå, at du går igang med at lære mere om PHP og MySQL inden du forventer, at vi herinde kan komme med svarene til dig.

Forslag til et godt site er www.phpartikler.dk :-)

Det er muligt, at du bad om en håndsrækning. Det føltes dog nærmere som en armrækning der skulle til i stedet, og til det er min tid for kostbar. Jeg bruger gerne 15 - 30 minutter på en opgave herinde, men jeg bruger ikke timer på samme opgave - i min verden er de så for store.
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



IT-JOB

Københavns Professionshøjskole

Nytænkende og agil IT-projektleder

Udviklings- og Forenklingsstyrelsen

ITSM-koordinator