Vise image fra mysql database?

Tags:    php mysqli image

Hej :)

Jeg har ikke så meget erfaring med at lige det her, men jeg har fået lavet en form, hvor man kan oploade et billede til databasen. Tabellen ser sådan her ud:
Fold kodeboks ind/udKode 


Men jeg ved ikke, hvordan jeg skal udskrive billederne i browseren korrekt?

Det er vel ikke ligesom, når man bare udtrækker tekst normalt osv.

På forhånd tak for hjælpen:)



10 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 35 karma
Sorter efter stemmer Sorter efter dato
Nu er jeg ikke den store tilhænger af blobs i databaser. Du kunne evt. vælge at uploade billederne til en folder på serveren og så gemme filnavnet i databasen i stedet for de binære billeder. Så kan du nemt finde filnavnet med en simpel SELECT til databasen og vise billedet med <img..... /> i HTML.

Jeg ved godt, at det ikke besvarer dit spørgsmål. Men det er ihvertfald et alternativ.



Du laver en fil der hedder img.php fx. Og så kalder du den med <img src="img.php?id=123">

I img.php sender du den rigtige header ala Content-type: image/jpeg fx og under det udskriver du bare dit blob felt fra databasen.

Er egentlig enig med brian - jeg ville foretrække at have henvisninger til filsystemet i stedet for billeder i databasen. Primært fordi at det er lettere at cache.

Hvis jeg skulle bruge database blob til billeder, så skulle det være fordi jeg havde en stor billedsamling som ændredes ofte, hvor det derfor ville være svært at holde styr på det, hvis man skulle rykke rundt på både filer og entries i databasen ved hver ændring... Men, jeg har svært ved at forestille mig en situation hvor jeg ville vælge den løsning.

Jeg må dog indrømme at jeg ikke har den helt store baggrund for min argumentation. Så det kan jo være at det er en super god idé i nogen tilfælde. :-)



Indlæg senest redigeret d. 04.03.2012 14:25 af Bruger #17015
Hmmmm..... Jeg siger ingenting :B



Aha, det er selvfølgelig også en mulighed, men som sagt, var det nemmere for mig at oploade til databasen end til folderen, da jeg ikke har gjort det før :)



hmm.. Siden i begge rådgiver mig til oploade det til en folder, så vælger jeg at lave det om :)

Tak for jeres svar!



Jeg sidder og er ved at ombygge en webside fra asp til php.
Jeg er ny i php så kunne godt bruge lidt tips.

Jeg har bl.a. en database med billede-urls og dem vil jeg jo så gerne trække ud af databasen. Men jeg kan ikke få til at virke.

Jeg har forsøgt med følgende kode:

<img src="<? echo "$row[Billede]"?>" border="0" align="bottom" alt="">

Der kommer intet ud.
Men hvis jeg forsøger at hente noget andet f.eks. Navn
<img src="<? echo "$row[Navne]"?>" border="0" align="bottom" alt="">
Så skriver den fint Navn-værdien ud.

Og jeg har selvfølgelig tjekket med en post som jeg ved rummer en værdi i feltet Billede.

Hvad pokker gør jeg forkert?



Jeg sidder og er ved at ombygge en webside fra asp til php.
Jeg er ny i php så kunne godt bruge lidt tips.

Jeg har bl.a. en database med billede-urls og dem vil jeg jo så gerne trække ud af databasen. Men jeg kan ikke få til at virke.

Jeg har forsøgt med følgende kode:

<img src="<? echo "$row[Billede]"?>" border="0" align="bottom" alt="">

Der kommer intet ud.
Men hvis jeg forsøger at hente noget andet f.eks. Navn
<img src="<? echo "$row[Navne]"?>" border="0" align="bottom" alt="">
Så skriver den fint Navn-værdien ud.

Og jeg har selvfølgelig tjekket med en post som jeg ved rummer en værdi i feltet Billede.

Hvad pokker gør jeg forkert?


Har du lidt mere kode? Hvordan ser din sql sætning f.eks. ud?



Den ser sådan her ud:

<?php
@include('Connect.php'); // Indeholder mit database connect.
$query = @mysql_query("SELECT * FROM Databasen WHERE Navn = 'Pinetta' ORDER BY rand() DESC LIMIT 1") or die("Der er sket en fejl. Fejlnr. ".mysql_errno());
# Hiver informationerne ud. Og da 'id' er et timestampt som indeholder tiden i sekunder siden 1970
# så Bestemmer vi rækkefølgen ud fra det.
# DESC henter den højeste værdi først (10 til 1), modsat standart som henter den laveste værdi først (1 til 10)


while ($row = @mysql_fetch_array($query)) {

# mysql_fetch_array laver et array med informationerne.
# arrayet hedder row, og kan informationerne kan hentes med $row[rækkenavn]
# f.eks. $row[navn] er navnet som står i den post , og som så udskrives med et whileloop
# laver et while loop, som udskriver alle informationerne én gang pr. post.





?>



Den ser sådan her ud:


Pak dem lige ind i udviklerens kodebokse :-)

Fold kodeboks ind/udPHP kode 


Og du er 100% sikker på at der står noget i feltet billede, for den med navnet Pinetta?



Efter et dobbelttjek, så var der jo ingen værdi i det felt alligevel.
UPS!
Havde glemt at det var en gammel kopi af databasen jeg bruger.



Indlæg senest redigeret d. 18.06.2013 15:09 af Bruger #17644
t