php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.01.2006, 16:39  
Gast
 
Beiträge: n/a
Standard Bild mit Textausgabe aus Datenbank!!

Hallo,

ich habe ein Problem und zwar:

Wir haben ein Script geschrieben, dass es ermöglicht einfach eine .jpg oder .gif - Datei und dazugehörigen Text in eine Datenbank zu speichern.

Danach haben wir ein weiteres Script geschrieben, dass es ermöglicht dieses Bild aus der Datenbank auszugeben. Das funktioniert alles wunderbar.

Das Problem liegt darin, dass die Ausgabe nur funktioniert, wenn wir das Bild alleine ausgeben lassen! Sobald wir Bild und Text miteinander ausgeben lassen, funktioniert das Script nicht mehr, weil er als content="image/gif" hat und nicht content="text/html"!!

Hat damit schon jemand erfahrungen gemacht??

Bitte um Hilfe
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.01.2006, 16:42  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Erstmal:
http://www.php-faq.de/q/q-db-blob.html

Wenn du trotzdem unbedingt Bilder in einer DB speichern willst, musst du eben für Text und Bild eine eigene Spalte benutzen.
Zergling-new ist offline   Mit Zitat antworten
Alt 05.01.2006, 16:51  
Gast
 
Beiträge: n/a
Standard

danke für die rasche antwort,

wir wollen dass aber trotzdem durchführen, da wir maximal 4 bilder in der datenbank haben, die relativ klein sind!

zu deinem vorschlag mit den Spalten, dass haben wir sogar so gelöst, aber die ausgabe funktioniert trotzdem nicht richtig!

Wie könnte man das lösen, dass er in der Spalte wo er das Bild ausgeben soll den content="image/gif" hat und in der anderen spalte den content="text/html"
???
  Mit Zitat antworten
Alt 05.01.2006, 17:14  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Versteh ich nicht, wie möchtest du das Bild denn mit dem Text darstellen?

Code:
#TEXT AUS DER DB#
[img]#BILD AUS DER DB#[/img]
?
Zergling-new ist offline   Mit Zitat antworten
Alt 05.01.2006, 17:22  
Gast
 
Beiträge: n/a
Standard

O.K. das hast du jetzt falsch verstanden,

wir haben nicht den LINK des Bildes in der DB sondern das gesamte Bild selber!

Die Ausgabe funktioniert kompliziert über content="image/gif", jetzt kann man da aber nur dieses eine Bild (ohne Text) aus der Datenbank auslesen!

Hier ein Ausschnitt aus unserem Code zum Eintragen in die DB:



PHP-Code:
<?php
if(!($foto_type == 'image/pjpeg' OR $foto_type == 'image/gif'))
{
$fehler.="
Der Dateityp ist nicht zulässig
"
;}

}
if(!
$fehler)
{
$data addslashes(fread(fopen($foto"r"), filesize($foto)));
$tabellenname='schueler';
$sql="insert into $tabellenname (klasse, schueler,  dateityp, foto) values ('$klasse', '$schueler',  '$foto_type', '$data')";

$link mysql_connect("localhost""Benutzer""Passwort");
mysql_select_db("Tabelle"$link);
if(!
mysql_query($sql$link))
{
$fehler.="
Der Upload ist aufgrund eines Datenbankfehler gescheitert, bitte versuchen Sie es später noch einmal
"
;}
}
?>

Und hier folgt die Ausgabe (NUR DES BILDES OHNE TEXT) dazu:

PHP-Code:
<?php

    
@MYSQL_CONNECT("localhost","Benutzer","Passwort");
    @
mysql_select_db("Tabelle");
    
$query "select * from schueler where id='17'";
    
$result = @MYSQL_QUERY($query);
    
$data = @MYSQL_RESULT($result,0,"foto");
    
$typ = @MYSQL_RESULT($result,0,"dateityp");
   
$kopf="Content-type; ".$typ;
header($kopf);
echo 
$data;

?>
Und hier sollten wir diese Ausgabe des Bildes einbauen:

PHP-Code:
<?php

$abfrage 
"SELECT * FROM schueler order by id LIMIT $start, $eintraege_pro_seite"
$ergebnis mysql_query($abfrage); 
while(
$row mysql_fetch_object($ergebnis)) 
    { 
    echo 
"<table border = '0',  width='75%' bordercolor='#663333' align='center' cellspacing='0' cellpadding='3' rules='rows' frame='box'>";
    echo 
"<tr><td width='33%' height='20'><center>".$row->foto."</center></td></tr>";
    echo 
"<tr><td></td></tr><tr><td width='33%' height='20'>[b]Von links nach rechts:[/b]".$row->schueler."</td></tr>";
    echo 
"</table>

"
;
   } 


?>
Bei der Variable $row->foto, sollte eigentlich dann die Ausgabe des Fotos geschehen!!

Verstehst du jetzt unser Problem??
  Mit Zitat antworten
Alt 05.01.2006, 17:43  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von softpoint
$kopf="Content-type; ".$typ; // <-- 1. ; falsch, : muss hin
Also ich hab schon verstanden wie du das meinst, ihr aber offenbar nicht
Denn ein Bild kannst du im Browser nur anzeigen, wenn du eine Datei hast, die den Binär-Code der Datei ausgibt.
Binär-Code kannst du nicht mit HTML-Code mischen.

Daher muss eine Datei HTML anzeigen, eine andere den Binärcode.
Für soetwas musst du also mindestens 2 Dateien haben.

image.php?id=#ID#
Diese Datei holt aus der Datenbank den Binärcode der Datei. Dieser lagert offenbar in der Spalte "foto".
Bevor der Binärcode ausgegeben wird, muss wie ihr (fast) richtig gemacht habt, der MIME-Type des Ausgabe-Streams im header() festgelegt sein.

ausgabe.php
Diese Datei holt alle wichtigen Informationen aus der Datenbank, BIS AUF FOTO. Das wird bereits von der image.php übernommen.
Jetzt könnt ihr einfach einen <img>-Tag schreiben, der das entsprechende Bild anzeigt.

PHP-Code:
<?php
//..
while($row mysql_fetch_object($ergebnis)) { 
   
printf('Das ist %s
'
$row->schueler);
   
printf('[img]image.php?id=%s[/img]

'
$row->id);
}
?>
Prinzip verstanden?
Zergling-new ist offline   Mit Zitat antworten
Alt 05.01.2006, 17:55  
Gast
 
Beiträge: n/a
Standard

Ja o.k. danke für die rasche und korrekte Antwort!!!!

Teilweise verstanden!

Kann man das one weiters einfach so machen, dass man in den <img...> Tag bei src eine PHP-Datei einfügt??
Wenn ja dann ist im Prinzip schon alles geklärt!!

Und wie genau sollte man die Datei für das Bild verwenden?

Wie gebe ich dieser Datei an, welches Bild er aus der Datenbank nehmen soll?

Inhalt der Datei, ist also nur dieser Code:

PHP-Code:
<?php
@MYSQL_CONNECT("localhost","Benutzer","Passwort"); 
    @
mysql_select_db("Tabelle"); 
    
$query "select * from schueler where id='17'"
    
$result = @MYSQL_QUERY($query); 
    
$data = @MYSQL_RESULT($result,0,"foto"); 
    
$typ = @MYSQL_RESULT($result,0,"dateityp"); 
   
$kopf="Content-type; ".$typ
header($kopf); 
echo 
$data

?>
Habe ich das richtig verstanden??

So ganz blicke ich noch nicht durch, tut mir leid wenn ich jetzt ein wenig lästig bin!!

Ein wahnsinn wäre natürlich, wenn du mir de wichtigsten Inhalte dieser Datei (image.php?id=#ID# ) posten könntest, damit ich das leichter verstehe!!

Danke im Voraus schon!!
  Mit Zitat antworten
Alt 05.01.2006, 18:11  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von softpoint
Kann man das one weiters einfach so machen, dass man in den <img...> Tag bei src eine PHP-Datei einfügt??
Ja, so lange diese Datei den gültigen Binärcode für ein Bild enthält.
xabbuh ist offline   Mit Zitat antworten
Alt 05.01.2006, 18:15  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo,
du kannst als src für den <img>-Tag irgendeine Datei reinschreiben, solange diese Datei einen dem Browser bekannten/erlaubten Bild-Typ (MIME-Type) plus gültigem Binärcode des übergebenen Bild-Types liefert. Sprich, du kannst eine PHP-Datei übergeben, solang sie ein zum Bild passenden Header liefert.

Im Prinzip musst du dein Skript nur dahingehend erweitern, dass du die "17" variabel machst und sie dir mit dem Dateiaufruf schicken läßt.

// image.php?id=#ID#
Code:
if (isset($_GET['id']) && intval($_GET['id']) > 0) {
  @MYSQL_CONNECT("localhost","Benutzer","Passwort"); 
    @mysql_select_db("Tabelle"); 
    $query = "select * from schueler where id='$_GET[id]' LIMIT 1";  // Erweiterung
    $result = @MYSQL_QUERY($query); 
    $data = @MYSQL_RESULT($result,0,"foto"); 
    $typ = @MYSQL_RESULT($result,0,"dateityp"); 
   $kopf="Content-type; ".$typ; 
  header($kopf); 
  echo $data; 
} else {
  // .. eure Entscheidung
}
Ihr müsst nur wissen was passieren soll, wenn eine falsche oder ungültige ID übergeben wird. Aber denk dran, dass die ausgabe.php davon ausgeht, dass die image.php ein Bild(!) zurückliefert. Ein "print 'Bild gibts nicht'" ist also keine sinnvolle Lösung. Am besten sendet ihr ein Standard-Bild.
Zergling-new ist offline   Mit Zitat antworten
Alt 05.01.2006, 18:33  
Gast
 
Beiträge: n/a
Standard

Wow... Danke für die Antworten, super Forum hier!!!

O.K. jetzt ist mir nur mehr noch eines unklar...

Und zwar lassen wir in der anderen Datei in einer Schleife alle Datensätze ohne Bild ausgeben, wie soll jetzt die eine Datei mit der Bildausgabe wissen, welches Bild zu welchen Datensatz gehört??

Muss ich da ein Request oder so ähnlich machen??

Was genau macht dieser Auszug: id='$_GET[id]'
?

Und wie gebe ich in der Schleife der ausgabedatei an, dass das Bild der id sowieso ausgibt??

Sorry für die blöden Fragen =)

Danke schon mal!!
  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] Bild hochladen --&amp;amp;gt; verkleinern --&amp;amp;gt; in Datenbank speich Datenbanken 6 28.02.2011 06:00
Transparentes Bild über Bild legen *update gelöst* Broadcast PHP-Fortgeschrittene 11 04.02.2008 15:27
Dynamische Bildgenerierung: Bild ändert sich nicht Jacks Rache PHP Tipps 2006 1 03.09.2006 10:01
Verkleinertes Bild (Thumb) in Datenbank speichern Da-JS PHP Tipps 2006 17 21.05.2006 17:35
Bild aus einer Datenbank laden Unknown PHP Tipps 2005-2 5 26.09.2005 01:38
[Erledigt] Bild aus Datei in Bild einfügen PHP Tipps 2005-2 1 07.08.2005 23:36
[PHP«Image] Bild in ein anderes Bild einsetzen PHP Tipps 2005-2 4 07.08.2005 19:39
Bild aus URL in Datenbank anzeigen Diego1978 PHP Tipps 2005-2 2 07.08.2005 14:11
[Erledigt] Bild aus Datenbank holen und als File speichern PHP Tipps 2005-2 2 05.07.2005 13:35
[Erledigt] bild in die datenbank? PHP Tipps 2005 3 19.05.2005 10:00
Bild aus Server anzeigen lassen flual2000 PHP Tipps 2004 4 26.10.2004 16:33
Bild upload in Verzeichniss/ Bild-Name in MySQL Datenbank PHP Tipps 2004 5 10.08.2004 13:17
[Erledigt] Bildlink aus Datenbank als Bild auf der Homepage anzeigen.. PHP Tipps 2004 5 25.07.2004 20:08
[Erledigt] Bildurl aus Datenbank auf der Homepage als Bild anzeigen HTML, Usability und Barrierefreiheit 4 25.07.2004 20:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/datenbanken/35542-erledigt-bild-mit-textausgabe-aus-datenbank.html, datenbank mit bild und text, testausgabe von text und bild, php datenbank textausgabe, binäre bilder und text in php, php textausgabe auf bild, bildurl im text erkennen ausgeben php, php ausgabe eines bildes aus datenbank, mysql \speichern\ tabelle binär blob, text aus datenbank in bild einfügen php script, php bilder und texte aus db darstellen, php text aus datenbank über bild legen, php text über ein bild legen, $data = @mysql_result($result,0,\foto\);, joomla bilder aus datenbank blob, text auf image datenbank, fotos aus datenbank, php text und bild aus datenbank, eine datenbank für bilder und text für eine webseite, sql script ausgabe ein text bild

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:27 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.