28. juni 2014 - 21:42Der er
11 kommentarer og 1 løsning
Hent data fra database + opret ny php-side, når der oprettes opskrift
Hej Eksperten,
Jeg er igang med et lille hygge projekt for at få bedre genskab til PHP. Mit spørgsmål består af to dele og drejer sig om oprettelse af opskrifter.
1. Jeg ønsker at hente data fra en database, men ikke alle data. Dataen består af følgende: Navn + vægt. Det drejer sig om en opskrift, som skal designes således, at man selv indtaster given vægt (som man normalt ville gøre, når man opretter en opskrift). Brugeren skal altså kunne vælge mellem data, som kommer fra databasen og selv indtaste given vægt. Mit problem er at hente denne data.
2. Når alt dette så er gjort og brugeren trykker "opret", så skal det designes således, at der bliver oprettet en ny side. F.eks. BollerIKarry.php
Jeg søger ikke en "plug 'n' play"-løsning eller hjælp til det hele, men nærmere nogle lette forståelige guide, så jeg lærer af det. Det betyder også, at det ikke behøver at være en samlet guide, men gerne én til hvert spørgsmål.
Du kommer nok til at fortælle mere om hvad det er du vil opnå. Jeg kan forstå, at du ud fra bruger valg vil kunne oprette nye sider, for eksempel BollerIKarry.php. Det skal vel være en side, der med tekst og billeder viser, hvordan man laver retten. Men hvor kommer den tekst og de billeder fra? Skal brugeren levere indholdet til siden, eller sidder indholdet til siden på forhånd i en database tabel og skal brugeren kunne vælge hvilke af retterne i databasen der skal oprettes en side for? Hvis indholdet til siderne sidder i en database tabel, hvordan ser den tabel så ud, hvilke kolonner er der? Det med vægt forstår jeg ikke, hvordan hænger det sammen at man normalt vil indtaste en vægt når man opretter en opskrift?
Fortæl også, hvor langt du selv er kommet med dette projekt. Ud fra hvad du fortæller vil jeg, eller andre, muligvis kunne hjælpe.
Jeg vil foreslå at du dropper det med at oprette en ny side for hver opskrift. Nye sider betyder som regel at du skal oprette en ny fil på serverens harddisk, og det bliver noget rod når du har 10000 opskrifter. Brug istedet en enkelt fil, f.eks. visopskrift.php og kald den med en parameter, f.eks. visopskrift.php?q=BollerIKarry.php
Det jeg egentlig mener er, at den skal fungere lidt som, f.eks. dk-kogebogen.dk.
Jeg vil gerne have at brugeren kan oprette nye opskrifter. Dog skal brugeren vælge ingredienser fra en allerede foruddefineret database. Lad os sige, at det er en konkurrence, hvor brugeren kun må bruge nogle bestemte ingredienser.
Her tænker jeg, at det er nemmest at oprette en tabel i databasen, som hedder ingredienser. Denne skal brugeren så kunne vælge mellem - Men kun disse som står i tabellen. Brugeren skriver tekst og uploader billeder. Dog er der den lille hage, at jeg i min tabel i databasen (som her hedder ingredienser) skal have flere informationer. F.eks. skal der om løg eller mel stå næringsoplysninger. Disse skal brugeren ikke se. Tabellen i databasen skal altså kun hente den ene værdi (selve ingrediensen).
Herefter, når brugeren har valgt ingredienser og skrevet tekst, så skal han/hun trykke "opret". Nu skal den så selv oprette en side. f.eks. www.mad.dk/bollerikarry.php eller, som HBP2, mad.dk?q=bollerikarry
HBP2, er det noget du kun hjælpe med at finde en nem guide til? Gerne eksempler, som ikke er alt for indviklet.
Du siger det er et hyggeprojekt for at få bedre kendskab til php. Men hvad kender du allerede, og hvor langt er du selv kommet i projektet? Det svarede du ikke på. (Hvis du er på total bar bund, så er det nok et noget ambitiøst projekt.)
Jamen indtil videre, så har jeg fået sat sådan op, at man(læs: administrator) kan tilføje råvarer i databasen. Nu vil jeg så gerne have denne råvareliste til at blive vist som en række valgmuligheder, at man kan vælge mellem. Jeg tænker der er en specifik funktion til dette.
Når dette er gjort, så tænker jeg at selve php-delen til opskriften, skal laves på samme måde, som man tilføjer råvarer. Altså den bliver gemt i databasen.
Herefter tænker jeg at lave en side, som automatisk viser alle opskrifter fra databasen - men det skal selvfølgelig ikke være på den samme side.
Jeg håber det var nok forklaring. Ellers bare skriv igen :-)
Generelt så lærer man jo ved at tage udgangspunkt i det man allerede kan og så bygge videre. Tag nu biler, hvis jeg fik udleveret en benzinpompe og en strømfordeler og en masse andre komponenter, så ville jeg ikke kunne bygge en bil og få den til at køre (uanset at jeg engang havde et to-ugers kursus i motorlære på specialarbejderskolen.) Og jeg ville ikke være smart nok til at kunne lære dig at lave en webside som du ønsker ved hjælp af en række funktioner.
Et mindre ambiøst projekt til at begynde med kunne være simpelt hen at udskrive råvarelisten uden dikkedarer. Siger du, at du kan tilføje råvarer i databasen? Du kunne jo fortælle, hvordan du gør det. Hvad database bruger du (mysql, mssql, ...) hvordan ser tabellen ud, hvilke kolonner har du? Hvordan tilføjer du så nye opskrifter? Gør du det direkte i databasen, for eksempel via phpmyadmin, hvis du bruger mysel, eller har du en applikation med for eksempel en html form som du udfylder og sender til databasen?
Jeg forstår ikke helt første del af dit svar. Med at bygge videre med noget som jeg har kendskab til, mener du så inde for råvarer, opskrifter, m.m. eller php og databaser? Hvis du mener php og databaser, så er det netop hvad jeg prøver her. Som allerede nævnt, så søger jeg ikke en "plug 'n' play" eller at få hjælp til at bygge en hel hjemmeside, men at finde nogle guides, som kan få mig derhen af.
Tror desværre du mistforstår lidt hvad jeg søger. Hehe :-)
Jeg tilføjer råvarer via hjælp af php og html på min hjemmeside. Dette bliver sendt til databasen, hvor der er følgende kolonner: Råvare, type, vægt, pris
Man kan godt tilføje nye opskrifter i databasen, men dette er lige præcis hvad jeg ikke ønsker. Dette ville ikke give mening, da en bruger så ikke ville kunne tilføje en opskrift. Jeg ønsker at lave en html form, hvor man kan tilføje nye ting i databasen - præcis som med råvarer. MEN. Når man opretter en ny opskrift, så skal den naturligvis også danne et link og eksempelvis lægge på en bestemt side, som kunne hedde "opskrifter".
Håber det var fyldestgørende, ellers må du meget gerne vende tilbage, så vil jeg prøve at illustrere i stedet.
1. Jeg har ikke nogen guide eller bog jeg kan anbefale. Hvis det er det spørgsmålet drejer sig om og ikke andet, så må jeg sige fra her og så håbe, på dine vegne, at der er andre der er klogere end jeg.
2. Min egen vej til at lære at programmere i html/php, ved hjælp af mysql, css, javascript, o.s.v., har været at løse små opgaver og så gradvis udbygge dem. Du fortæller, tror jeg, at du har en hjemmeside, og fra den kan du (logget ind som administrator) tilføje råvarer til din database tabel. Det jeg forestillede mig var, at du nu ville definerede det næste skridt (og lade det blive ved et enkelt skridt.) Jeg tror du vil have råvarerne i tabellen præsenteret på en side på din hjemmeside, således at brugerne kan gøre noget med råvarerne.
Spørgsmål 1: Vil du have alle råvarer præsenteret eller kun visse råvarer, for eksempel råvarer af en bestemt type? Hvis du kun vil have nogle af råvarerne præsenteret, hvem bestemmer så hvilke? Er det brugeren ved hjælp af et input? I så fald hvordan?
Spørgsmål 2: Hvordan vil du have de viste råvarer præsenteret? Dine tidligere indlæg tyder på, at du vil have råvarerne præsenteret som en 'select' liste hvor brugeren kan vælge et antal råvarer, som der derefter skal gøres noget ved.
3. Men om du vil gå ind på en sådan skridt for skridt fremgangsmåde ved jeg ikke. Hvis ikke, så må jeg som sagt stå af her.
Jeg vil gerne sige tusind tak for dit svar og din tid. Det er stadig ikke helt det jeg mener. Jeg tror at bliver nødt til at have noget mere konkret og noget som kan fremvises, for at det kan forståes. Det har nok været svært at forstå, når alle tankerne har været i mit hovedet :P
Jeg vil oprette et nyt spørgsmål, når jeg kommer frem til noget mere konkret :-)
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.