Inhalte aus Blob anzeigen lassen

rernanded

Erfahrenes Mitglied
Hi,
ich muß die Inhalte eines blob-Feldes ausgeben.
Beispielhaft hier ein Auszug. Im Blob sind Texte und Bilder enthalten.
Ich sehe O: , s: , b: , i: , a: und jeweils Zahlen dahinter, dann : "* ... ". Nun habe ich das Problem wie ich das Ganze ausgeben kann.
"* ... " sind wahrscheinlich die Feldnamen die ich üblicherweise anlegen würde, würde ich kein blob nutzen.
Dann sind da noch { {} } - Klammern deren Anordnung sich mir noch verschließt.
Das Feld heißt übrigens data.

MONI


O:7:"Message":8:{s:11:" * Headline";s:4:"kfza";s:7:" * Body";s:8:"kfzatest";s:9:" * Images";a:6:{s:4:"data";s:4576:"ÿØÿà JFIF ` ` ÿÛ C ÿØÿà JFIF ` ` ÿÛ C ÿØÿà JFIF ` ` ÿÛ C
... Ich denke mal das sind die Bilddaten, habe die mal eingekürzt. ...

";s:4:"type";i:2;s:4:"size";i:4576;s:5:"width";i:115;s:6:"height";i:145;s:4:"name";s:11:"front.jpg";}s:11:" * Editable";b:1;s:8:" * Owner";s:17:"B-N-230315-125945";s:11:" * Creation";i:1427114175;s:11:" * Category";s:3:"KFZ";s:8:" * Issue";s:13:"Angebotsart A";}
 
Zuletzt bearbeitet:
Die "Indizes" bedeuten folgendes:
  • O = Objekt: die Zahl dahinter gibt die Länge des folgenden Klassennamen an
  • s = String: die Zahl dahinter gibt die Länge der folgenden Zeichenkette an
  • i = Integer: der Wert gibt den Index des folgenden Elementes im aktuellen Array wieder
  • a = Array: der Wert gibt die Anzahl der Elemente im folgenden Array aus
  • b = Boolean: der Wert gibt ein Boolean an, wobei 1 = true und 0 = false entspricht
  • N = Null
 
Zuletzt bearbeitet:
Hallo einfach nur crack und danke.

So was in der Art hatte ich mir schon gedacht, jedoch brauche ich noch einen kleinen Anstoss wie ich das auslesen und dann ausgeben kann.

Moni
 
Hallo

im einfachsten Falle habe ich sowas wie unten, geht natürlich diesmal nicht.
Wäre aber schön wenn ich die Feldinhalte einfach nur anzeige. Danach sehe ich weiter weil ich noch gar nicht weiß was alles drin ist.

MONI

PHP:
<?php

include_once("data-conn.php");

$sql = "SELECT * FROM tester ORDER BY id DESC";

$ergebnis =    @mysql_query($sql) or die("SQL Error: ".mysql_error());
$anz_ds =    @mysql_num_rows($ergebnis);

for ($ii = 0 ; $ii < $anz_ds ; $ii++)
{

   $id =@mysql_result($ergebnis,$ii,"id");
   $headline =@mysql_result($ergebnis,$ii,"headline");
   $text =@mysql_result($ergebnis,$ii,"text");
   $link =@mysql_result($ergebnis,$ii,"link");



   echo  $id; 


   // usw. ...

}

?>
 
Hallo sheel,
was stört Dich, gehts damit nicht oder ist es Dir zu veraltet?
Gehts mit

PHP:
$ergebnis = mysqli_query(sql);

besser? Oder mit mysqli::query()? Oder ist es der ganz falsche Ansatz?

MONI
 
Zuletzt bearbeitet:
Hi

ja, erstens ist es veraltet, und wird irgendwann ganz entfernt (spätestens dann geht
kein Programm mehr, das diese Funktionen verwendet),
und zweitens würde PHP dir das vermutlich selber sagen (bei aktueller PHP-Version),
wenn Warnungen nicht mit @ unterdrückt wären.

Allein die Verwendung von @ ist schon ein Warnsignal... Warnungen sind nicht da,
um ignoriert zu werden. In einem Fall prüfst du zwar selber und machst ggf. ein die(),
aber bei allen anderen Aufrufen von mysql_irgendwas nicht.
 
Hallo sheel,
danke für den Hinweis, kann ich/man ja alles berücksichtigen, löst aber nicht mein eigentliches Problem.
MONI
 
Hi,

besteht die Möglichkeit, dass es sich bei den Einträgen um serialize'te Daten handelt? Dann dürfte ein unserialize() auf den kompletten Datenstring ein Objekt der Klasse "Message" zurück liefern, dass du mit var_dump() untersuchen kannst. Und es sollte möglich sein, auf die einzelnen Werte mittels Objekt-Zeiger zuzugreifen:

PHP:
$message = unserialize($datenstring);

// zum debuggen und analysieren (muss deaktiviert sein, um das Bild fehlerfrei im Browser sehen zu können)
//var_dump($message);

// Bilddaten ausgeben:
header('Content-Type: image/jpeg');
echo $message->data;
 
Zurück