WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 11.05.2006, 08:45   #1
cssFreak
Jr. Member
 
Registriert seit: 14.12.2005
Alter: 38
Beiträge: 39


Standard Mit PHP ein Bild aus der Datenbank schreiben

Hallo hab wieder einmal eine Frage!!!!

Hab ein kleines CMS geschrieben mit dem ich ein Bild in eine MySQL Datenbank schreibe.....Datentyp in der DB ist BLOB!!!!

Jetzt hab ich aber ein Problem das ganze wieder aus der Datenbank auszulesen!!!!

Wie mach ich das....ich habs schon mit einem einfachen
echo"
".$row['bild']."
";

dann hab ich noch versucht das bild in eine Variable zu schreiben und es dann auszugeben...das funktioniert aber alles ned....gibts da vieleicht eine andere Möglichkeit???

Danke im vorraus...
cssFreak
____________________________________
xhtml 1.0 strict
cssFreak ist offline   Mit Zitat antworten
Alt 11.05.2006, 09:55   #2
hewlett
Inventar
 
Registriert seit: 08.11.2000
Alter: 42
Beiträge: 1.524


Standard

wieso willst du das komplette bild in der db speichern, das is ja schwachsinn. vor allem wennst mal mehr bilder hast.

also ich schreib immer nur den pfad in die db, das vereinfacht das ganze doch sehr und die performance der db is auch weit besser.
____________________________________
H.E.W.L.E.T.T.: Hydraulic Electronic Worker Limited to Exploration and Terran Troubleshooting
hewlett ist offline   Mit Zitat antworten
Alt 11.05.2006, 11:11   #3
Philipp
verXENt
 
Benutzerbild von Philipp
 
Registriert seit: 01.08.1999
Beiträge: 7.084

Mein Computer

Standard Re: Mit PHP ein Bild aus der Datenbank schreiben

Zitat:
Original geschrieben von cssFreak
Wie mach ich das....ich habs schon mit einem einfachen
echo"
".$row['bild']."
";

dann hab ich noch versucht das bild in eine Variable zu schreiben und es dann auszugeben...das funktioniert aber alles ned....gibts da vieleicht eine andere Möglichkeit???
Z.B.

Code:
echo "
<img src=\""image.php?id=".$row['id']."\" alt=\"\">
";
Und das entsprechende Image Script gibt das Bild z.B. so aus:

Code:
header("content-length: $groesse");
header("content-type: $mime");
header("content-disposition: attachment; filename=$dateiname");
echo $bild;
Philipp ist offline   Mit Zitat antworten
Alt 11.05.2006, 16:55   #4
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

Zitat:
Hab ein kleines CMS geschrieben mit dem ich ein Bild in eine MySQL Datenbank schreibe....
Der Tod einer jeden DB... seit wann speichert man dort Binary Daten ab, wenn es sich vermeiden lässt *aufdenKopfgreif*

pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 11.05.2006, 18:27   #5
Philipp
verXENt
 
Benutzerbild von Philipp
 
Registriert seit: 01.08.1999
Beiträge: 7.084

Mein Computer

Standard

So "schwachsinnig" ist es auch wieder nicht. Vor allem in Zusammenhang mit den Cachingfunktionen von MySQL 4/5 gibt es durchaus auch Vorteile.

vBulletin speichert übrigens auch Avatare und Attachments als Binary in der Datenbank
Philipp ist offline   Mit Zitat antworten
Alt 11.05.2006, 22:19   #6
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

hi,

dem möchte ich auch noch hinzufügen: generell kann man nicht sagen, das es schlecht ist, ein bild in einem binary feld der DB zu speichern - kommt halt (wie so oft) auf den anwendungsfall an.

vorteil: mit sicherung der DB werden alle Daten gesichert, also auch die Bilder.

Was man sich aber überlegen sollte: Eine eigenen Tabelle, welche als Spalten den Primary Key und das BLOB Feld hat, sonst nix. Von einer anderen Tabelle, in der die restlichen Daten stehen, wird auf diese "Bildertabelle" verwiesen. Dadurch werden Operationen an Daten, die das Bild nicht betreffen nicht durch den Datenoverhead gebremst.

fg
hannes
Biri ist offline   Mit Zitat antworten
Alt 12.05.2006, 11:19   #7
cssFreak
Jr. Member
 
Registriert seit: 14.12.2005
Alter: 38
Beiträge: 39


Standard

ja an diese methode hab ich auch schon gedacht!!!

wäre natürlich besser für die Performance!!!

Aber das sind dinge die ich später noch ändern kann!!!

Wichtig wäre mir das ich das bild anzeigen kann...und das funktioniert nicht so wirklich...hab es auch jetzt schon mit der möglichkeit von Phillip versucht...das läuft aber auch nicht so ganz!!! (zumindest schaff ich es nicht )

Vieleicht gibt es ja noch eine andere lösung!!!

MFG
cssFreak
____________________________________
xhtml 1.0 strict
cssFreak ist offline   Mit Zitat antworten
Alt 12.05.2006, 12:06   #8
Philipp
verXENt
 
Benutzerbild von Philipp
 
Registriert seit: 01.08.1999
Beiträge: 7.084

Mein Computer

Standard

Mir fällt gerade auf das BLOB unter MySQL nur eine Länge von 64kb erlaubt. Ich würde daher auf MEDIUMBLOB (16MB) umstellen.

Falls es weiterhin nicht funktioniert, wäre es gut das entsprechende Upload bzw. Image Script zu posten
Philipp ist offline   Mit Zitat antworten
Alt 12.05.2006, 12:11   #9
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

[offtopic]
Es ist nicht unbedingt nötig, jeden Satz mit einem dreifachen Satzzeichen abzuschließen!!!
Das schaut irgendwie komisch aus, findest du nicht???
[/offtopic]

ev. hilft dir auch: http://www.experts-exchange.com/Web/..._21727878.html

fg
hannes
Biri ist offline   Mit Zitat antworten
Alt 01.06.2006, 20:59   #10
cruxx
Senior Member
 
Registriert seit: 02.11.2003
Alter: 38
Beiträge: 167


cruxx eine Nachricht über ICQ schicken
Standard

hm.. ich hab grad ne mysql datenbank eingerichtet.. kann nur blobs (mediumblobs) unter 99k raufladen???
was ist da das problem???
cruxx ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:19 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag