Avatar billede clausberg Nybegynder
16. august 2005 - 22:04 Der er 21 kommentarer og
2 løsninger

Link mellem billeder og tekst i myslq DB

Jeg har oprettet en database med en række informationer over familiemedlemmer, venner, foreningsmedlemmer, kollegaer osv. Informationerne kan jeg hente frem via en slq query sætning og sætte det nydeligt op med table - så langt så godt.

MEN...

Jeg vil også godt have et billede tilknyttet informationen - altså et billede af Peter og derunder står hvor gammel han er osv...

Jeg har forstået at:
1) man enten kan bruge "Blop" (problemet er tilsyneladende at tabellen så bliver for stor og for langsom hvis hver person får tilknyttet et eller flere billeder
2) et alternativ kunne være at lave en selvstændig tabel kun til billederne - det er nok den metode jeg vil bruge.
Dog forstår jeg ikke hvordan de rette informationer bliver knyttet sammen med det rigtige billede (hver information og hvert billede får en unik ID)

Hvad skal jeg gøre?????
Avatar billede jakobdo Ekspert
16. august 2005 - 22:08 #1
Du kunne lave noget i stil med:
brugertabel:
bruger_id
fornavn
efternavn
billedenavn (evt plus den fulde sti)
osv...
Så du gemmer f.eks.
jakob
olsen
server/www/images/jakob.jpg
og så lader du billedet ligge i en mappe og ikke smide det i DB.
Avatar billede Syska Mester
16. august 2005 - 22:09 #2
i din person table, har hvert person nok et unikt ID, i den nye table:

pictures:
PicId ( unique, auto increment )
PersonId ( Her skriver du persons id ind, så du ved hvem der ejer billedet )
Picname ( her skriver du hvad billeder hedder på din server, du kan eventuelt omdøbe det når du uploader det... time() + microtime()".jpg" eller sådan noget, ved ikek helt om der er noget der hedder microtime... men ellers et random tal med 100000 og 999999 kan jo også bruges, så der ikke er nogen billeder der kommer til at hede det samme )
Beskrivelse ( hvis du vil have en beskrivelse med til billedet )

Simpel as that... mere du vil vide?

// oUT
Avatar billede Syska Mester
16. august 2005 - 22:10 #3
og så lave en join mellem de 2 tables når du skal have data ud
Avatar billede clausberg Nybegynder
16. august 2005 - 22:20 #4
buzzzz> simpel as that :-D ikke helt :-) men tæt på...

ja hver person i min table har et unikt id...

Jeg skal vel oprette en ny tabel med 3 felter (id, picid og picname)???
(for ikke brug for en beskrivelse)

Men hvordan joiner jeg mellem de 2 tables - er der en smart måde?
Avatar billede jakobdo Ekspert
16. august 2005 - 22:21 #5
Avatar billede clausberg Nybegynder
16. august 2005 - 22:23 #6
jakobdo>>>> jeg har godt overvejet at smide billederne i en mappe ude på min server og ikke i en DB... men jeg er bare ikke helt med, hvordan og hvor jeg skal skrive den sætning der skal angive at der skal hives en bestemt biillede frem når der hives en bestemt data ud.

kan jeg bare tilføje en ny række til min allerede eksisterende bruger tabel hvor jeg skriver billednavn og så skriver <img src="billeder/peter.jpg">
... og så vil den automatisk finde billedet frem????
Avatar billede jakobdo Ekspert
16. august 2005 - 22:40 #7
Den vil ikke automatisk finde billedet.
Men du kunne tilføje et felt ja, hvor du så gemte:
billeder/peter.jpg
Hvor du så trækker dine data ud, laver du så:
<img src="$row['billede']">
Hvilket så gerne skulle blive:
<img src="billeder/peter.jpg">
Avatar billede clausberg Nybegynder
16. august 2005 - 22:48 #8
jakobdo>>>
Vil det så sige, at jeg skal lave et felt i min DB der hedder "billede" og i selve tekstfeltet blot skriver billeder/peter.jpg ??????

Det felt jeg så skal lave i min DB... skal det være en "varchar"... "text"... "blop" eller ???????
Avatar billede jakobdo Ekspert
16. august 2005 - 22:51 #9
1: Ja.
2: varchar(255)
Avatar billede clausberg Nybegynder
16. august 2005 - 22:53 #10
Hvis det virker,så er det genialt!!!!!!! :)

Jeg prøver det lige af i morgen og vender tilbage.
Vil det ikke også give en klar hurtigere søgetid end hvis jeg skulle bruge joins????
Avatar billede ksoren Nybegynder
16. august 2005 - 22:54 #11
Du kunne også vælge at navngive billedet efter personens id.. <person_id>.jpg
Avatar billede clausberg Nybegynder
16. august 2005 - 22:56 #12
Ksoren>>>> Endnu mere genialt :-D
Kongeligt!!!!!!
Avatar billede Syska Mester
16. august 2005 - 23:21 #13
Hvis hver person skal have flere billeder er joins faktisk den eneste mulighed der er, der findes andre, men ikke lige så dynamiske og smarte...

Så længe du ikke er oppe i mere end 100 rows, så det ikke noget at sige, nærmer du dig 100.000 vil det selvf tage lidt længere tid, men vi snakker stadig sekunder...

// ouT
Avatar billede clausberg Nybegynder
17. august 2005 - 15:51 #14
buzzzz>>>
tak for rådet :) Det vil jeg huske... men i mit tilfælde er et billede nok
Avatar billede Syska Mester
17. august 2005 - 18:14 #15
oki
Avatar billede clausberg Nybegynder
18. august 2005 - 10:54 #16
Jakobdo>>>
Det virker ikke :)
Den viser godt nok at der skal være et billede knyttet til den rigtige tekst, men den kan ikke finde min gif fil? (der kommer et lille felt frem med et rødt kryds i)

Kan det være min sti: billeder/peter.gif ...der ikke virker?

Jeg har også prøvet med blop - uden resultat.
Avatar billede Syska Mester
18. august 2005 - 11:05 #17
Det skal være enten text eller varchar, og ville egentlig beholde det ved carchar(255) som han skriver....

når du kigger på stien ( højre klik, og se hvor den leder efter billedet.. hvad viser den? og passer den med virkeligeheden hvor billedet på serveren ligger?

hvad hvis du bare udsrkiver din $row["billede"] for at se hvad værdien er, for at sikre dig at den også blier hentet fra din database.....

// ouT
Avatar billede clausberg Nybegynder
18. august 2005 - 16:56 #18
Fedt!! Det virker...

Det var varchar
I mit nye felt "billede" skulle man bare skrive <img scr="peter.gif"> ... altså bruge <>
Ja, der er sikkert flere måder :)

Jakobdo og Buzz - smid begge et svar - takker
Avatar billede Syska Mester
18. august 2005 - 18:33 #19
smid "peter.gif" i databasen, og dette i din kode...

<img src="<? print $row['billede']; ?>">
til så til:
<img scr="peter.gif">

Så fylder det ikke så meget i din database, ikke at det har noget at sige nu, da der ikke er mere data, men kan man ligeså godt vende sig til det....
Avatar billede Syska Mester
18. august 2005 - 18:33 #20
skulle være et svar...

// ouT
Avatar billede jakobdo Ekspert
18. august 2005 - 20:07 #21
Og et svar! ;o)
Avatar billede clausberg Nybegynder
19. august 2005 - 11:20 #22
Jeg takker for hjælpen :)
Avatar billede jakobdo Ekspert
19. august 2005 - 11:28 #23
Takker for point!
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