php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.02.2012, 14:39  
Neuer Benutzer
 
Registriert seit: 31.01.2012
Beiträge: 5
PHP-Kenntnisse:
Anfänger
lorenz befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] jpeg-Bilder aus MySQL Datenbank anzeigen

Hallo,

Ich versuche ein jpeg Bild, das in einer MySql Datenbank abgelegt ist mit PHP anzuzeigen, aber es wird immer nur ein leeres Bild Tag angezeigt.
Hier mein Code
class_kategorie.php:

PHP-Code:
foreach ($tmp as $value)
      {
      
        
$subvalue $value['startkategorienr'];
        
        echo 
"<tr><td>";
        echo 
"<img src='".__DIR__."\showPicture.php".
        
"' alt='".
        
$value['startbildtext']."' >";
        echo 
"</td>";
        echo 
"</tr>";
      }

      echo 
"</table>"
class_showPicture.php:

PHP-Code:
require_once("class_picture.php");



$photo = new Picture();

$photo->showPicture(); 
und class_picture.php:

PHP-Code:
 public function showPicture()
  {
    
header('Content-type: image/jpeg');
    foreach(
$this->tmp as $key => $value)
    {
      foreach(
$value as $subkey => $subval)
      {
      
        echo 
$subval;
      
      }
    }
    
  } 
Die Datenbankverbindung funktioniert und wenn ich ein img Tag in die Funktion showPicture() einbaue wird das Bild als Binärer Zeichenstring ausgegeben. Andernfalls wird nur das leere Bild Tag angezeigt. Ich habe das Bild in My SQL als image/jpeg abgelegt. Als Attribut ist binär angezeigt. Das einzige, dass funktioniert ist der alt Text, den ich auch aus der Datenbank hole. Vielen Dank für eure Hilfe.
lorenz ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.02.2012, 14:54  
Erfahrener Benutzer
 
Registriert seit: 07.12.2009
Beiträge: 843
PHP-Kenntnisse:
Fortgeschritten
chorn befindet sich auf einem aufstrebenden Ast
Standard

was steht denn in $this->tmp drin? Inhalt mal mit var_dump() geprüft? Und was genau machen die foreach-Schleifen? Ein Bild = ein String.
chorn ist offline   Mit Zitat antworten
Alt 01.02.2012, 15:54  
Neuer Benutzer
 
Registriert seit: 31.01.2012
Beiträge: 5
PHP-Kenntnisse:
Anfänger
lorenz befindet sich auf einem aufstrebenden Ast
Standard

$this->tmp enthält das Bild als binärer String und die foreach Schleifen sortieren aus bis nur noch der binäre Zeichencode übrig bleibt. Ich versuche es zur Zeit mit Zwischenspeichern. Das klappt auch, aber das Bild wird trotzdem nicht angezeigt. Es ist folgender Code dazugekommen.

PHP-Code:
 public function showPicture()
  {
    
header('Content-type: image/jpeg');
    foreach(
$this->tmp as $key => $value)
    {
      foreach(
$value as $subkey => $subval)
      {
        
$location __DIR__."\bild.jpeg"
        
$file fopen($location"a+"); 
        
fwrite($file$subval); 
        
fclose($file); 
        
        echo 
"<img src='".$location."'>";
      
      }
    }
    
  } 
und in der kategorie.php:

PHP-Code:
 public function anzeigen()
  {
  
   


//echo "Hallo";
$photo = new Picture();
//print_r($_GET['nr']);
//$photo->showPicture();
    
   
   
$sql "SELECT startbildtext, startkategorienr FROM ws_startseite ";
    
$result $this->dbh->query($sql);
  
$tmp $result->fetchAll();
  
//print_r($result);
    //$anzahl = mysql_num_rows($result);

    //$error= mysql_error();

        
      
echo "<table border=1>";
    
      foreach (
$tmp as $value)
      {
      
        
$subvalue $value['startkategorienr'];
        
        echo 
"<tr><td>";
        
$photo->showPicture();
        
//"' alt='".
        //$value['startbildtext']."' >";
        
echo "</td>";
        echo 
"</tr>";
      }

      echo 
"</table>";
      
      echo 
"<img src='bild.jpeg'>"

      
  

  } 
Jetzt wird das Bild im Klassenordner gespeichert, lässt sich aber immer noch nicht anzeigen. Mit der Windows Fotoanzeige funktioniert es, aber im Browser wird nur ein leerer Bild Tag angezeigt. Ich glaube schon langsam, dass ich nicht clever genug für so was bin.
lorenz ist offline   Mit Zitat antworten
Alt 01.02.2012, 16:22  
Neuer Benutzer
 
Registriert seit: 31.01.2012
Beiträge: 5
PHP-Kenntnisse:
Anfänger
lorenz befindet sich auf einem aufstrebenden Ast
Standard

Zwischenspeichern ist auch keine Lösung. Wozu brauch man dann eine Datenbank? Ich fange nochmal von vorne an.
lorenz ist offline   Mit Zitat antworten
Alt 01.02.2012, 16:26  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Zitat:
Zitat von lorenz Beitrag anzeigen
$this->tmp enthält das Bild als binärer String und die foreach Schleifen sortieren aus bis nur noch der binäre Zeichencode übrig bleibt.
Was sortieren die foreach Schleifen aus?

http://www.phpriot.com/articles/images-in-mysql
Trainmaster ist gerade online   Mit Zitat antworten
Alt 01.02.2012, 16:47  
Neuer Benutzer
 
Registriert seit: 31.01.2012
Beiträge: 5
PHP-Kenntnisse:
Anfänger
lorenz befindet sich auf einem aufstrebenden Ast
Standard

Ich habe mehrere Spalten in der Abfrage und das funktioniert auch alles. Das erkenne ich daran, dass man das Bild Zwischenspeichern kann und dann mit html anzeigen, aber sobald ich das mit echo versuche, wird nur noch ein leerer Tag angezeigt. Ich habe wahrscheinlich nur einen kleinen Fehler, aber ich komme nicht drauf. Für heute mache ich Schluss und morgen programmiere ich alles nochmal. LG
lorenz ist offline   Mit Zitat antworten
Alt 01.02.2012, 16:52  
Erfahrener Benutzer
 
Registriert seit: 07.12.2009
Beiträge: 843
PHP-Kenntnisse:
Fortgeschritten
chorn befindet sich auf einem aufstrebenden Ast
Standard

Hast du dir die PHP-Datei einfach mal ohne header()... angesehen? Wird da vllt. ein Fehler ausgegeben? Du durchläufst mehrere Spalten? Also gibst du einfach jede Spalte in jeder Zeile mit echo aus? Das würde zumindest nicht funktionieren.
chorn ist offline   Mit Zitat antworten
Alt 02.02.2012, 11:44  
Neuer Benutzer
 
Registriert seit: 31.01.2012
Beiträge: 5
PHP-Kenntnisse:
Anfänger
lorenz befindet sich auf einem aufstrebenden Ast
Standard

OK. I surrender. Ich mache jetzt alles noch mal neu, weil Bilder ja nicht in eine Datenbank gehören. Ich weiß jedenfalls auch nicht wie der Gunnar Thies das gemacht hat. Ich programmiere jetzt ein geteiltes System aus Datenbank und Dateiupload. Ich denke das bekomme ich hin. Dieses Thema markiere ich dann als erledigt. Da ich erst mal den Login Bereich programmiere, melde ich mich in ein paar Tagen wieder (oder dann, wenn mit dem Login was nicht klappt). Zu deiner Frage chorn: Die Datei wird einfach als binäre Zeichenfolge ausgegeben, ob mit oder ohne Header(). Ich habe das alles schon mit print_r() versucht und es steht immer der binäre Code der Datei in der Variablen. In der Datenbank habe ich BLOB eingestellt. Ich habe es aber auch schon mit imagejpeg() versucht und es tut sich nichts. Ich habe die Datenbank auch auf MIMETYPE: image/jpeg umgestellt. Egal wie ich das mache, es steht immer nur ein binärer String in der Variablen, in die ich den Datensatz aus der Datenbank einlese. Was funktioniert ist, wenn ich diesen binären String als jpeg Zwischenspeichere. Dann wird das Bild korrekt gespeichert. Allerdings bei jedem Seitenaufruf. OK, man kann es beim Verlassen der Seite löschen, aber was ist, wenn die Besucheranzahl steigt. Könnte Probleme geben. Deswegen habe ich mich bei der Planung jetzt doch für eine geteilte Speicherung entschieden. Ich werde das Bild in ein Verzeichnis laden und dann den Pfad in die Datenbank schreiben. Das ist zwar wesentlich mehr Arbeit, aber es funktioniert wenigstens und ich kann die alt Texte zu den Bildern dann zusätzlich in der Datenbank speichern und ausgeben lassen. Danke trotzdem. LG
lorenz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Bilder unter den Gliederungspunkt anzeigen Plienkie PHP Einsteiger 13 20.12.2011 23:19
[Erledigt] Problem MYSQL Bilder aus DB anzeigen alexalbion Datenbanken 20 08.09.2010 22:17
[Erledigt] Bilder aus mysql Datenbank mit php auslesen xyw PHP Tipps 2010 11 23.05.2010 20:16
Mit php dynamisch Namen von Bildnamen sowie Pfad in mysql Datenbank speichern mallmis PHP Tipps 2008 1 19.11.2007 23:04
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? PHP Tipps 2005-2 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
Bilder in MySQL Datenbanken 5 03.04.2005 04:53
Bilder nach Namen anzeigen PHP Tipps 2005 11 06.03.2005 15:41

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bilder aus mysql datenbank anzeigen, bilder aus mysql mit php, jpg in datenbank php, jpg bild aus mysql in php anzeigen, php bilder aus datenbank anzeigen function, bild aus datenbank anzeigen, php mysql bild in text anzeigen, php jpeg auf datenbank anzeigen, php mysql binary image fwrite, php mysql bilder aus datenbank anzeigen, mysql datenbank bilder anzeigen, php bild aus datenbank anzeigen, php jpeg anzeigen, php bild datenbank anzeiegen, php bilder durch tmp

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum