24. oktober 2010 - 17:27Der er
34 kommentarer og 1 løsning
Billede afhængig af værdi
Hvordan får jeg vist et billede afhængig af hvilken værdi der er lagt i databasen?
Jeg vil gerne ha vist et lille ikon ud for hver opskrift i stedet for tiden som den er skrevet i databasen. F.eks. 15 min så skal den vise 15.jpg, 30 min viser den 30.jpg osv.
Hvis der altid findes et billede for den pågældende værdi, kan du jo sådan set bare tilføje '.jpg' efter tiden.
$path = './pictures/' $pic = $aar['tid'].'.jpg'
echo $path.$pic;
For eksempel. Hvis jeg har forstået dig problem korrekt. En anden mulighed, hvis ikke du vil have 300 forskellige billeder liggende, er at lave en PNG skabelon uden tallet, som du kan få PHP til at indsætte, så du kan få vist tiden fra tabellen lige meget om der så end stå 12 min, 32 min, 31 min eller hvad som helst.
Synes godt om
Slettet bruger
24. oktober 2010 - 20:03#3
Dit eksempel lyder som en god idé, men jeg er ikke sikker på at jeg forstår sammensætningen af det.
F.eks. laver jeg ur.png, vil php så trække tallene fra databasen og vise ved siden af?
Hvis det er mig du henviser til med "dit eksempel" og ikke danco, så var det jeg foreslog at du fik PHP til at lave billedet med de funktioner der nu er til dette i PHP.
Hvis du fx. vil have vist det som et ur, vil jeg foreslå at du laver urskiven, uden visere, som en png fil, hvor efter du så ved et PHP script der indsætter viserene oven på urskiven. Hvis du forstår.
Det skulle bestemt være muligt. Men det kræver jo selvfølgelig en smule matematiske udregninger idet du jo så skal udregne hældningen på hhv. minutter og timer ud fra et decimaltal.
Hvis du tager en kigger på http://dk2.php.net/manual/en/function.imagefilledpolygon.php kan du se hvordan man kan tegne forskellige former med PHP (der er selvfølgelig også funktioner til fx. cirkler), hvorved jeg i stedet for en sort baggrund som du kan se i det eksempel de har lavet tegner oven på den fil der i forvenen ligger på serveren at en urskive.
Synes godt om
Slettet bruger
24. oktober 2010 - 20:37#6
Jeps, det var til dig kjeldsted. Jeg har kigget lidt på det link du sendte med, og det er vist langt ud over mine evner :( Jeg kan ikke se hvor meget eller hvor lidt jeg skal have med, for at opnå det jeg gerne vil, nemlig en urskive med det tal der nu står i databasen henover.
Jeg prøvede den øverste af danco, men fik fejl i linjen $arr = mysql_fetch_array($rs);
Og jeg kan ikke se om det er fordi der mangler et tegn eller hvad der ellers skulle ha stået. :(
Kjeldsteds forslag er som sådan fint nok, og det er også en pæn måde at gøre tingene på, jeg synes bare at det er meget arbejde hvis der alligevel kun er 4 muligheder (15,30,45,60).
Altså skal du bare have et ur, hvor det står med tal henover, hvornår opskriften er tilføjet?
Eller skal det være et ur, hvor viseren flytter sig i forhold til tiden?
Hvis du har tiden i en database, er det jo bare at hente det ud, som alle andre data i en database. Hvilket format har du det stående i? Altså i databasen?
Hvis du kun vil have vist antal minutter, er der forskellige måder at gøre det på. Men det afhænger af formattet.
Altså hvis du kun skal have mulighederne 15, 30 og 45, vil det være tåbeligt med mit forslag. Det var mere henvendt hvis du både skal kunne bruge 1, 2, 3, 4, 5, 6, 7, 8, 9.......120.
Som jeg ser det har du 2 muligheder for at slippe udenom at kode urskiven. 1. Opsætte intervaller (15,30,45,60) alt efter hvor mange muligheder du vil give brugeren, og derefter manuelt uploade billederne til serveren.
2. Udskrive tiden som ren tekst fra databasen således at der bare står: 34 min.
Som jeg umiddelbart ser der er ovennævnte 2 muligheder lige "lette" at gå til da det ikke kræver alverdens programmeringskundskaber. Og jeg vil så nok indrømme at jeg, som har programmeret gennem 4-5 år efterhånden, ville have svært ved at tegne urskiven, men det er mest af alt pga. manglende matematik kundskaber.
Det med urskiven kan også laves på flere forskellige måder. Også lette, men mere besværlige/uhensigtsmæssige metoder. Men så vidt jeg kan se, får du ikke meget ud af dit såkaldte ur her. Hvad kan du bruge det til? Det viser ihvertfaldt ikke hvor mange minutter siden det er at opskriften blev tilføjet. Det kan vise, hvad klokken var da det blev tilføjet. Det kunne godt laves, men ville ikke rigtig være brugbart, da der trods alt kun er 60 minutter på et ur. Hvor skulle viseren være, når det er 70 minutter efter opskriften er blevet tilføjet? Og hvis du bare ville vise klokken for hvornår det blev tilføjet, giver det heller ikke den store mening, medmindre der er dato. For ellers kan man naturligvis heller ikke se, om det fx var 14.35 i dag eller i onsdags i sidste uge...
Nu jeg er jo ikke tankelæser. Men jeg har på fornemmelsen at det uret skal vise er hvor lang tid opskriften ca. tager at lave.
Er dette ikke korrekt?
Og, ja. Som sagt så vil det kræve lidt matematiske beregninger for at kunne tegne usvisere i PHP, og hvis du på ingen måde har en idé om hvordan du kan udregne koordinaterne, kan det blive lidt af en kamp. Så i så fald skal du nok overveje om det er SÅ vigtigt, at det ikke laves på en nemmere måde.
Synes godt om
Slettet bruger
25. oktober 2010 - 18:57#15
Kjeldsted har ret, undskylder min evne til at forvirre. Min tanke var at vise et ur på alle opskrifterne, det skal vise hvor lang tid det tager at tilberede opskriften. Ideen er så at markere på urskiven hvor lang tid en opskrift tager (15 min. som vist her http://anakin.dk/images/15minutes.jpg) og så fremdeles for 16, 21 og 43 min. Og tager en opskrift mere end 60 min, skal der vises et tal hen over skiven med det antal timer ud over minutterne.
Den løsning jeg har nu er lige lavet om fra vilkårligt antal minutter til forud bestemte intervaller, men jeg vil meget gerne tilbage til at man kan indtaste præcis hvor lang tid det tager, hvilket også gør søgefunktionen mere præcis.
Så hvor mange point er løsningen til det værd ;)
Synes godt om
Slettet bruger
25. oktober 2010 - 19:00#16
Webweaver: Jeg har haft tallet i det brugeren indtaster, det lavede jeg om til forud bestemte værdier, men som nævnt før, vil jeg meget gerne tilbage til skæve minuttal, og en urskive hvor det antal minutter der skal bruges, er det antal der er skraveret på skiven.
Og lige for at tilføje så kan man jo sagtens bruge det ur som PFPedersen har brugt i eksempel for så at ligge grafikken ind over dette. Og det er heller ikke et problem at lave den røde flade for halv-transplerent, så man stadig kan læse tallene under det røde.
Synes godt om
Slettet bruger
26. oktober 2010 - 12:55#21
Webweaver: Det ser rigtig godt ud Kjeldsted: Det lyder fedt med halvtransperant så man stadig kan se tallene.
Samlet set er det lige præcis det jeg leder efter.
Jeps, man kan lave "det røde felt halv transperant. Eller som jeg har gjort, og som også virker lige så godt (som I jo kan se), bare lave uret med transperant baggrund. Så PHP'en i mit script ligger faktisk bagerst med et ur henover, og ikke omvendt som, hvis det skulle være halv transperant.
Det ur jeg har brugt i løsningen, er bare et tilfældigt taget fra google, hvorefter jeg har fjernet baggrunden i det. Så kører det. Det kan sagtens gøres med det ur som der er vist her tidligere. Der er dog bare lige et MEN. Det ur som er postet her som eksempel tidligere, har visere på sig. Det vanskeliggører lige opgaven en hel del, hvis de skal flytte sig med rundt. Desuden, hvis der er visere på, viser det jo et klokkeslet og ikke antal minutter længere. Så det vil jeg måske nok fraråde. :)
Det var så et stopur der var linket til, så der er kun en viser. Glem det med klokkeslet :) Men stadig mere kompliceret, hvis du vil have viseren til at flytte sig med rundt.
Synes godt om
Slettet bruger
26. oktober 2010 - 17:06#24
Rolig nu, der skal ikke være visere der flytter sig med rundt. Men noget der måske kunne være sejt var, hvis en opskrift tager f.eks. 90 min. at tilberede, at så er 1-tallet fremhævet, og 180 min så er 2-tallet fremhævet.. Hvis det er for omstændigt i forhold til det du har lavet nu, så kunne et tal i det første kvarter af skiven også gøre det.
Det med fremhævning af tallene, kan godt laves rimelig simpelt skulle jeg mene. Det kræver dog at du har 12 forskellige ure, hver sit med et fremhævet tal. For PHP kan ikke fremhæve et tal som sådan, da uret er et færdigt billede. Så skulle PHP smide noget tekst ud, som stod oveni det andet, så man ikke kunne se det. Men ville jeg nok ikke gøre. Ville lave det med de mange ure og så nogle if sætninger, der afgør, hvornår hvad skal vises.
Forstår dog ikke helt. 90 minutter. 1 tallet fremhæves. For at vise at det tager 1 time, og det røde bagved fylder så 30 min. Men 180 minutter og et 2 tal? Det er jo 3 timer. Skal det så vise 2 timer og 60 minutter? Hvorfor ikke bare 3 så? :)
Jeg prøver at se om jeg ikke kan få kigget på det hurtigst muligt :)
Ikke endnu, måske i juleferien, den smule der måtte være.
Kom til at tænke på, at størrelsen nok er lige i overkanten, det skulle jo være et ikon på 50x50 eller noget i den retning. Hvis jeg ændrer urets størrelse, vil det som koden markerer, så automatisk følge med?
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.