Avatar billede peter_g_j Nybegynder
20. juni 2005 - 15:42 Der er 11 kommentarer og
1 løsning

Random billede

Jeg har en mappe hvor der kan uploades billeder til. Samtidig har jeg en MySQL db, hvor stien med filnavn bliver gemt. Jeg bruger "uniqid(getmypid())" til af give filerne et unikt filnavn. På forsiden af min side ønsker jeg at vise et random billede fra mappen. Nogen der har en ide til hvordan jeg skal lave sådan noget?

/Peter
Avatar billede kourinsu Nybegynder
20. juni 2005 - 15:43 #1
Du kan udtrække en tilfældig række i tabellen, med den indbyggede rand() funktion i mysql...
Avatar billede kourinsu Nybegynder
20. juni 2005 - 15:44 #2
SELECT billede_kolonne FROM billeder_tabel ORDER BY RAND() LIMIT 1
Avatar billede arne_v Ekspert
20. juni 2005 - 15:48 #3
læs alle filnavnene in di et array

hvis der er N navne i arrayet så trækker du et tilfældigt tal 0..N-1 og
hiver det filnavn ud af arrayet og viser det billede
Avatar billede peter_g_j Nybegynder
20. juni 2005 - 15:48 #4
Jeg har forsøgt lidt forskelligt med rand() funktionen. Men kan ikke rigtig finde ud af hvordan jeg skal få den sat ind i min "mysql_query("select * from program")".
Avatar billede arne_v Ekspert
20. juni 2005 - 15:51 #5
mysql_query("select * from program order by rand() limit 1")
Avatar billede kourinsu Nybegynder
20. juni 2005 - 15:54 #6
arne_v: Er det ikke lidt dobbeltarbejde? Så skal man først lave et databaseudtræk, hvorefter arrayet skal oprettes og en tilfældigt index udvælges. Hvis man kan nøges med DB udtrækket, så burde det da være at fortrække...i min ydmyge mening :-)
Avatar billede peter_g_j Nybegynder
20. juni 2005 - 16:03 #7
Det virkede. Tak kourinsu og arne. Lige et tillægsspørgsmål, hvordan fungerer det her point sjov? I vil jo nok gerne have nogle point, ik?
Avatar billede peter_g_j Nybegynder
20. juni 2005 - 16:04 #8
Løsningen blev iøvrigt:
$resultat = mysql_query("SELECT * FROM billede ORDER BY RAND() LIMIT 1");
$row = mysql_fetch_array($resultat);
echo '<img border="0" width="275" height="185" src="Billeder/' . $row['billede'] . '">';
Avatar billede arne_v Ekspert
20. juni 2005 - 16:08 #9
kourinsu>

jeg ville slet ikke gå i nærheden af databasen

jeg ville lave en dir på disk og læs eoutput til et array og cache det i memory

således at hver visning kun består i at generere et tilfældigt tal og så outputte rette <img src="...">

ingen database overhovedet

giver selvfølgelig kun mening hvis man ikke skal bruge andre informationer som
er tilknyttet billedet
Avatar billede arne_v Ekspert
20. juni 2005 - 16:09 #10
du bedere kourinsu ligge et svar som du så accepterer
Avatar billede kourinsu Nybegynder
20. juni 2005 - 16:15 #11
Hermed et svar :)

arne_v: ahhh...okay. Sådan kan man jo også gøre det. Den stikker jeg lige i baglommen :)
Avatar billede peter_g_j Nybegynder
20. juni 2005 - 16:22 #12
Sådan der. Tak til jer begge...
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