"We are back" « oc.at

BLOBs mit PHP aus MySQL lesen

prayerslayer 21.09.2005 - 08:44 3373 28
Posts

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
grüße.

einmal mehr benötige ich den rat dieses allwissenden forums.
wie der titel schon sagt müsst ich mit php einen blob aus
einer mysql-datenbank rauslesen, hab aber kan plan wie des
gehn soll...

tia

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
select blob from blob_table;

?

dosen

Here to stay
Avatar
Registered: Feb 2003
Location: Wien
Posts: 5618
wollt meine wissenslücke stopfen und hab nach blob gegoogelt -> http://www.spacefem.com/blobs/

was ist ein blob?

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12173
Binary Large OBject, afaik.

dosen

Here to stay
Avatar
Registered: Feb 2003
Location: Wien
Posts: 5618
Zitat von COLOSSUS
Binary Large OBject, afaik.

thx, wenn man danach googlet gibts schon ordentlich mehr infos :)

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
Zitat von watchout
select blob from blob_table;

?

das is das sql-statement, ja :)
ich konkretisier das ganze jetzt: ich hab ein bild als blob in
meiner mysql-datenbank. das möcht ich mittels php auslesen und
mit html anzeigen. wenn ich jetzt oben genanntes anwende kommt
irgenda schas raus weil html nix mit binärcode anfangen kann.

ich müsst aus dem binärzeugs irgendwie das bild als solches raus-
bekommen...?

--edit--
Code: PHP
  $query_pics="SELECT * FROM PICS";
  $result_pics=mysql_query($query_pics);
  $row_result_pics=mysql_fetch_assoc($result_pics);

und später

Code: PHP
  <img src="" alt="" border="0">
  <?php
    echo($row_result_pics['HEAD']);
  ?>

so funktionierts NICHT!
Bearbeitet von prayerslayer am 22.09.2005, 09:01

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Zitat von prayerslayer
Code: PHP
  <img src="" alt="" border="0">
  <?php
    echo($row_result_pics['HEAD']);
  ?>

so funktionierts NICHT!

klar, das hat ja auch mit HTML nichts zu tun. Du musst das Bild mit einem eigenen Request abholen:

Code: PHP
  <img src="display_pic.php" alt="Bild" border="0">

Das display_pic.php muss nun das BLOB lesen und als image/jpeg (oder als was auch immer) zurückliefern.

Wie das genau funktioniert, kann ich dir nicht sagen, aber obiges ist mal sicher.

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
kk, danke das hilft mir einmal weiter... wie weit kann ich
noch nicht sagen :)

//edit
wär aber schön wenn mir irgendwer den vollständigen code dafür
geben könnte weil anscheinend is die methode net besonders beliebt.
-> keine bzw. wenn dann unübersichtliche tuts im internet :(
Bearbeitet von prayerslayer am 22.09.2005, 13:00

cduke

Big d00d
Registered: Nov 2001
Location: 1230 Wien
Posts: 253
In der display_pic.php holst Du das Bild aus der DB ab, schickst folgenden Header:

header ('Content-Type: image/jpeg');

und schreibst dann mit echo das gefetchte Bild raus:

echo $blob_img;

Wichtig: vor header darf keine andere Ausgabe sein - sonst bekommst Du nur ein broken image.

greetz cduke

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
dann müsste der code so ausschaun:
Code: PHP
<?php

  include("connect.php");
  $query_pics="SELECT * FROM PICS";
  $result_pics=mysql_query($query_pics);
  $row_result_pics=mysql_fetch_assoc($result_pics);
  header ('Content-Type: image/jpeg');
  echo $row_result_pics['HEAD'];
?>

das geht aber nicht :( blablub ich checks net :bash:

cduke

Big d00d
Registered: Nov 2001
Location: 1230 Wien
Posts: 253
Was passiert, wenn Du die Seite direkt aufrufst? Bekommst Du ein broken image angezeigt? Es darf kein Space, gar nix vor dem <?php sein. Auch in connect.php darf keinerlei Ausgabe erfolgen.

Ich nehme mal an, dass HEAD das blob-Feld ist, also das sollte passen, nachdem Du ja nur ein Element fetcht.

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
ich würd den header schicken bevor ich die connect.php include, probier das mal!

hth

DJ_Cyberdance

Here to stay
Avatar
Registered: Jun 2002
Location: Vesterålen
Posts: 1838
Hab mich auch schon mal damit auseinandergesetzt. Wenn Du irgendwie die Möglichkeit hast, mach folgendes: Dateinamen in die Datenbank schreiben und Bilddatei extra ablegen. Nicht nur, daß es einfacher geht in PHP, außerdem beeinflußen BLOBs die Datenbankperformance nicht gerade positiv. Würd ich nicht machen wenn sichs irgendwie vermeiden läßt.

cduke

Big d00d
Registered: Nov 2001
Location: 1230 Wien
Posts: 253
Zitat von DJ_Cyberdance
Hab mich auch schon mal damit auseinandergesetzt. Wenn Du irgendwie die Möglichkeit hast, mach folgendes: Dateinamen in die Datenbank schreiben und Bilddatei extra ablegen. Nicht nur, daß es einfacher geht in PHP, außerdem beeinflußen BLOBs die Datenbankperformance nicht gerade positiv. Würd ich nicht machen wenn sichs irgendwie vermeiden läßt.
/signed

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
ja ich weiß das man das mit bild-blobs net machen sollt wenn mans
vermeiden kann aber das ist leider meine aufgabenstellung :-/

ahja und mit nix vorher ausgeben is leider net möglich weil...
ich häng ein bild an, dann sehts es :)

der link oben is zum sprache wechseln, der is unbedingt nötig,
könnt ich zur not aber unten machen. hapern tuts bei der überschrift,
die kann ich net wirklich unters bild geben :-/ (könnten schon, aber
vom ästhetischen standpunkt aus net wirklich gut)

wenns keine andre lösung gibt werd ichs ganz normal mit pfad machen.
danke für die hilfe!
_page_85367.jpg (downloaded 43x)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz