Bilder speichern in einer Datenbank
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
ausgabe
bild
code
datei
datenbank
ergebnis
fehlermeldung
foto
frage
header
image
speichern
text
type
url
verbinden
verbindung
vorname
zeile
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Willst du...
a) das ganze Bild in der DB speichern
b) nur Bildinfos (z.B. Pfad des Bilds) in der DB speichern und die eigentlichen Bilder auf deinem Webspace speichern?
LG cookies -
Mich würden a) und b) interessieren. Das Thema kam letztens bei mir im Informatik-Unterricht zu sprechen.
Ich würde vermuten, dass wenn man das ganze Bild in einer DB speichert die DB dadurch langsamer wird, oder? Aufjedenfall ist es Speicher intensiv. Wie es geht weiß ich leider nicht.
Das mit dem Bildinfos ist mir sonst klar mich würden halt nur die Vor- und Nachteile von beiden interessieren und welches besser ist.
LG pdaniel -
Also normalerweise werden Bilder nicht im Binärformat in eine Datenbank gespeichert...
Für gewöhnlich werden von einem php-Script die Bilder in einem bestimmten Verzeichnis gespeichert und die Daten, wie z.B. Pfad, Größe, Format, etc., in die Datenbank geschrieben. Auf diese Art und Weise erledigen das die meisten Scripts.
Es gibt zwar auch die Möglichkeit, Bilder in die Datenbank direkt zu schreiben, aber ich kann mir Vorstellen, dass das eigentlich nicht vorgesehen ist. Nicht zuletzt, weil es wahrscheinlich die Zugriffszeiten in die Höhe treibt. -
schrotti12 schrieb:
Also normalerweise werden Bilder nicht im Binärformat in eine Datenbank gespeichert...
Für gewöhnlich werden von einem php-Script die Bilder in einem bestimmten Verzeichnis gespeichert und die Daten, wie z.B. Pfad, Größe, Format, etc., in die Datenbank geschrieben. Auf diese Art und Weise erledigen das die meisten Scripts.
Es gibt zwar auch die Möglichkeit, Bilder in die Datenbank direkt zu schreiben, aber ich kann mir Vorstellen, dass das eigentlich nicht vorgesehen ist. Nicht zuletzt, weil es wahrscheinlich die Zugriffszeiten in die Höhe treibt.
Bei ein paar Bildern lohnt sich der Aufwand sicherlich nicht.
Solltest du aber ein paar tausend Bilder haben, dann ist es eine gute Alternative.
Es ist leichter eine Datenbank über mehrere Server zu verteilen, als die Bilder auf mehreren Server via PHP zu speichern und zu verwalten.
D.h. MySQL übernimmt dann die Verwaltung, wo was gespeichert wird und du musst dich nicht darum kümmern.
Die Bilder die dann wirklich benötigt werden, sollten dann aber gecacht werden. -
ich habe gesehen,
dass ihr euch etwas auskennt mit php und mysql,
ich möchte aus einer datenbanktabelle mehrere vornamen und Fotos auslesen in einer tabelle darstellen
ich kann immer nur eins von beiden und immer nur ein bild :(
wie würde es mit dem hyperlink denn funktionieren ??
Beitrag zuletzt geändert: 21.2.2010 23:16:48 von neuerpauker1 -
neuerpauker1 schrieb:
ich habe gesehen,
dass ihr dich etwas auskennt mit php und mysql,
Bitte mach doch für eine frage einen neuen Threat auf (!)
neuerpauker1 schrieb:
ich möchte aus einer datenbanktabelle mehrere vornamen und Fotos auslesen in einer tabelle darstellen
ich kann immer nur eins von beiden und immer nur ein bild :(
Es wäre hilfreich wenn Du dazu den entsprechenden Code postest + kurz sagst wie Deine Tabelle struktuiert ist.
Bist Du sicher das Du dafür eine Datenbanktabelle brauchst?
neuerpauker1 schrieb:
wie würde es mit dem hyperlink denn funktionieren ??
Ich verstehe die frage nicht so ganz. Wie gut kennst Du Dich mit html aus?
Eventuell helfen Dir diese Seiten weiter:
http://de.selfhtml.org/html/verweise/definieren.htm
http://de.selfhtml.org/html/grafiken/einbinden.htm
-
hallo simuliertes, ich liege doch in der gleichen Richtung wie der 1.Fragesteller
meine 3 Quelltexte
-------------die datei bildwunsch.html-----------hier kann man die nummer des gewünschten datensatzes eingeben---
<html>
<head>
<title>Bildwunsch</title>
</head>
<body>
<form action="bild1.php" method="post">
<input name="BildNr" size="10">
<br>
<input type=submit value="Ab die Post ...">
</form>
</body>
</html>
--------------------------die datei bild1.php-----------------
<?php
// Sagt dem Browser, dass die Datei ein Bild (PNG) ist // scheint nicht wichtigzu sein
header("Content-type: image/png");
//Verbinden mit Fehlermeldung
mysql_connect("mysql.lima-city.de","USER163984","*********") or die ("Keine Verbindung moeglich");
mysql_select_db("db_163984_1") or die ("Die Datenbank existiert nicht");
//Abfrage mit Nummer
//$BildNr=1; // zum testen
$abfrage = "SELECT * FROM tabelle01 WHERE id=$BildNr";
$ergebnis = mysql_query($abfrage);
$zeile = mysql_fetch_array($ergebnis);
{
echo($zeile['foto']); // png und jpg geht aber nur 64 kb größe
echo($zeile['vorname']); // <<<<<<<<<<<<<<<------------------------------------------------------geht nicht
}
?>
-------------------------------------
die variablen stimmen, ich kann ja auch die texte auslesen, aber nicht text und bild zusammen
-------------------------------------
---------------------datei tabelle_auslesen.php-------------------
<?php
//Verbinden mit Fehlermeldung
mysql_connect("mysql.lima-city.de","USER163984","h*******") or die ("Keine Verbindung moeglich");
mysql_select_db("db_163984_1") or die ("Die Datenbank existiert nicht");
//Abfrage
$abfrage = "SELECT * FROM tabelle01";
$ergebnis = mysql_query($abfrage);
//Ausgabe
while($row = mysql_fetch_object($ergebnis))
{
echo "<br>";
echo "ID = $row->id _ ";
echo "Vorname: $row->vorname";
-----------------------alle auskommentierten varianten gehen nicht---------------
//echo "$row->foto";
// echo($row['foto']);
//echo "<img src=$row['foto']> ";
//echo "<img src=$row->foto> ";
// echo"<img src='bild.php?BildNr=$row->id>";
//echo"Bild <img src='bild.php?BildNr=4> ";
echo "<br>...";
}
?>
-
neuerpauker1 schrieb:
hallo simuliertes, ich liege doch in der gleichen Richtung wie der 1.Fragesteller
Das mag schon sein aber...
-damit nicht alle in einem Threat durcheinander-fragen
-damit die Fragen übersichtlicher bleiben
-sich oft herausstellt das Fragen dann doch individueller sind
-die Threats nicht zu lang werden (wer will sich das alles durchlesen?)
-Du mehr Gulden bekommst (DU bekommst Gulden für jede Antwort in DEINEM Threat)
-und einigen anderen gründen die mir irgendwann noch einfallen
...ist es besser und übrigens in jedem Forum in dem ich jemals war üblich das jeder Fragesteller immer einen eigenen Threat aufmacht
neuerpauker1 schrieb:
// Sagt dem Browser, dass die Datei ein Bild (PNG) ist // scheint nicht wichtigzu sein
header("Content-type: image/png");
Diesen Code (hier drüber) solltest Du entfernen, Dein Bild ist IN einer html-Datei.
Nur wenn Dein php Code ein Bild generiert (und nichts anderes) wäre diese Angabe sinnvoll.
versuch mal folgendes und Poste das Ergebnis:
<?php //Verbinden mit Fehlermeldung mysql_connect("mysql.lima-city.de","USER163984","h*******") or die ("Keine Verbindung moeglich"); mysql_select_db("db_163984_1") or die ("Die Datenbank existiert nicht"); //Abfrage $abfrage = "SELECT * FROM tabelle01"; $ergebnis = mysql_query($abfrage); //Ausgabe while($row = mysql_fetch_object($ergebnis)) { echo "[".print_r($row)."]<br>\n"; } ?>
Noch ein kleiner Tip:
wenn Du hier beim schreiben Deinen Code als Code Markierst (so das er grau hinterlegt ist wie hier)
ist das ganze noch übersichtlicher. -
Vielen dank, aber
das ergebnis ist leider nicht so dolle:
stdClass Object ( [id] => 1 [vorname] => Clarissa [zuname] => [nickname] => [notizen] => Umlaute äöü ß ÄÖÜ ergeben kleine Fehlermeldung, aber wohl ohne Folgen [foto] => ÿØÿàJFIFÿÛCÿÛCÿÀ,Ì"ÿÄ ÿÄ;!" #1$A2a BQq3R‘&45Sb¡ðÿÄÿÄ5!"1#2ABQ3a$Rð4Sbqr‘ÁÿÚ ?ÕÏI?ª·Ç^¡u^™rMtø/!Ó*ëe1© d⪞Ûä€Q-v‘¼õ w€À/CÀìú'¼D÷‰ï?‰ïŸùûOüOüþ¾VÝVêß+ÑçM´tî¾®UTtMç™”ï3+O²¿s’BTùï{]p^º§.[”þ‰Ÿ95>St Þ ÔžQm¾¬tÅØJHù šÚÜ2€MD_1}U»¤GHn&ËE!‰2A¹‹4’YŽÑñ~OÅŒÜ åpâmä|ZR·Æ¾ ²GúÌUëd¬ˆÙxõvVƒœ¨2$l¿ƒì™ž+9!zœ¿“SeTÍr1rŠ†œÎ’Øù3u ‘*kfsÞ
vielleicht sollte ich es doch mit dem link zum bild probieren, was ich aber auch noch nicht kann :)
(ps: beim nächsten problem mache ich dann neues thema )
Beitrag zuletzt geändert: 22.2.2010 0:03:50 von neuerpauker1 -
Aaaachsoooo.
Ok jetzt sehe ich den Fehler.
Also Korrektur:
simuliertes schrieb:
neuerpauker1 schrieb:
// Sagt dem Browser, dass die Datei ein Bild (PNG) ist // scheint nicht wichtigzu sein
header("Content-type: image/png");
Diesen Code (hier drüber) solltest Du entfernen, Dein Bild ist IN einer html-Datei.
Nur wenn Dein php Code ein Bild generiert (und nichts anderes) wäre diese Angabe sinnvoll.
Lass es doch drinn!!
Sorry mein Fehler.
Selbstverständlich wird Dir kein Text angezeigt weil Deine bild1.php ..
tja ein BILD ist...
Der Text (vorname etc..) gehört in deine html-seite und Dein Bild darf keine andere Ausgabe haben als
,( sofern das Bild auch ein png-Bild ist) und die Bilddaten.header("Content-type: image/png")
Dein Bildwunsch.html, mach zu Bildwunsch.php und ergänze diesen Code :
<?php //Verbinden mit Fehlermeldung mysql_connect("mysql.lima-city.de","USER163984","*********") or die ("Keine Verbindung moeglich"); mysql_select_db("db_163984_1") or die ("Die Datenbank existiert nicht"); //Abfrage mit Nummer //$BildNr=1; // zum testen $abfrage = "SELECT * FROM tabelle01 WHERE id=$BildNr"; $ergebnis = mysql_query($abfrage); $zeile = mysql_fetch_array($ergebnis); { echo($zeile['vorname']); } ?>
(ungetestet)
Woher soll das png-Bild wissen was es mit dem Text anfangen soll?
Beitrag zuletzt geändert: 22.2.2010 0:27:03 von simuliertes -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage