CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
04.05.2005, 11:48:00
|
|
Anfänger
|
|
Registriert seit: Mar 2004
Ort: Usedom
Beiträge: 11
|
|
Binärdaten in/aus Datenbank mySQL
Hallo Coder,
ich möchte eine kleine Bildersammlung (ca. 200 Bilder mit max 5 kb pro Stück) in eine mySQL Tabelle schreiben. Soweit funktioniert das auch. Habe den Namen, die Größe, den Datentyp (GIF, PNG oder JPG) sowie natürlich die eigentlichen Binärdaten (LONGBLOB) in der Datenbank. Wie kann ich diese Daten jetzt aber so auslesen, das ich evtl. nur ein PHP-Script habe, dem ich die id dranhänge (zeige.php?id=1) um das Bild auszugeben??
Hab schon ein bisschen mit imagegif rumprobiert aber leider noch keine vernünftige Möglichkeit gefunden. Wie man prizipiell Bilder erzeugt und diese ausgibt weiss ich. Aber wie man die Daten, aus der Datenbank in ein Imagefeld schreibt hab ich noch nicht gelöst.
Hat jemand Rat?
|
04.05.2005, 12:18:00
|
|
Junior Member
|
|
Registriert seit: Apr 2005
Beiträge: 401
|
|
AW: Binärdaten in/aus Datenbank mySQL
Leider brauchst du immer 2 Scripte, also eines welches den htmlcode ergibt <img src='bilderstellung.php'
und eines welches das Bild selbst erzeugt (also die bilderstellung.php) (Ein Bild ist ja ein eigener request.....)
daher ist es Unsinn ein Bild selbst in der Datenbank zu speichern (weil wenn du sagen wir mal 50 Bilder auf der HP hast, dann hast du auch 51 Aufrufe des php interpreters (50 mal bild plus das script welches img src usw macht....)) d.h. 51 concurrent User und das ist performancequatsch hoch drei......
Man sollte niemals Binärdateien in einer Datenbank speichern.....für diesen Zweck meine ich....
Besser wäre es nur den Pfad zum Bild in der DB zu speichern und dadurch aufrufen....
also z.B. id|pfad|berschriebung
PS zu deiner eigentlichen Frage: Binärdateien kannst du ausliefern indem du den richtigen Heder lieferst, du bracuhst dazu keine bildfunktionen.
Den der Binärcode für das Bild leigt ja schon komplett vor....
also z.B.
echo "Content-type: image/gif\n\n";
echo $datenbank["bildblob"];
Ach ja und was zum Teufel ist ein imagefeld??????????????????????
Geändert von dachris (04.05.2005 um 12:20:21 Uhr)
|
04.05.2005, 12:47:28
|
Junior Member
|
|
Registriert seit: Nov 2003
Ort: Neuwied
Alter: 34
Beiträge: 204
|
|
AW: Binärdaten in/aus Datenbank mySQL
du kannst doch die bilderstellungs.php auch direkt aufrufen und das bild ausgeben. man darf darin nur nichts anderes ausgeben lassen wie html oder so
|
04.05.2005, 13:01:21
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
AW: Binärdaten in/aus Datenbank mySQL
Zitat:
Zitat von dachris
Leider brauchst du immer 2 Scripte, also eines welches den htmlcode ergibt <img src='bilderstellung.php'
und eines welches das Bild selbst erzeugt (also die bilderstellung.php) (Ein Bild ist ja ein eigener request.....)
|
Falsch! Siehe:
PHP-Code:
<?php
$img = imagecreate(100, 100);
imagecolorallocate($img, 0xff, 0x0, 0x0);
header('content-type: image/png');
imagepng($img, 'bild.png');
imagedestroy($img);
?>
<img src="bild.png">
Es ist aber absoluter Schwachsinn Bilder in einer Datenbank zuspeichern. Auf dem Webspace als Imagefile sind die viel besser aufgehoben.
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|
04.05.2005, 13:16:53
|
|
Junior Member
|
|
Registriert seit: Apr 2005
Beiträge: 401
|
|
AW: Binärdaten in/aus Datenbank mySQL
OK das wäre ne Möglichkeit, nur das ist genauso performanceintensiv....(50 Bilder temporär erzeugen, na ich weiss ja nicht....)
das geht übrigens mit der Funktion imagecreatefromstring....
|
04.05.2005, 16:46:52
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
AW: Binärdaten in/aus Datenbank mySQL
Ich sagte doch, es ist Unsinn Bilder in eine DB zupacken. Sachen wie Bilder gehoeren statisch auf den Webspace und nicht in eine Datenbank. Erst recht wenn es 50 Blider sind, da wird sich die Seitenperformance sehr deutlich bedanken...
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|
12.05.2005, 10:18:56
|
|
Anfänger
|
|
Registriert seit: Mar 2004
Ort: Usedom
Beiträge: 11
|
|
AW: Binärdaten in/aus Datenbank mySQL
@dachris: Danke erst mal. Funktioniert.
Zu Deiner Frage: Mit "imagefeld" meinte ich die Funktion "imagecreate", die mir ja ein Feld erstellt in dem ich rumkrickeln kann. Nen bisschen plöde Wortwahl. Ich habs gemerkt.
Ansonsten hab ich ja ganz schön was entfesselt.....
@alle die hier gepostet haben.
Ich wollte die Bilder in die Datenbank haben, weil die Bilder sich sehr oft ändern. Und das geht über eine Datenbank schneller als jedesmal das Bild wieder hochzuladen.
Trotzdem Danke. Habt mir geholfen!
KdM
|
12.05.2005, 11:44:57
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Binärdaten in/aus Datenbank mySQL
Zitat:
Zitat von Klaus-die-Maus
Ich wollte die Bilder in die Datenbank haben, weil die Bilder sich sehr oft ändern. Und das geht über eine Datenbank schneller als jedesmal das Bild wieder hochzuladen.
|
Wenn das Bild auf deinem lokalen Rechner liegt, wirst du es auch hochladen müssen, um es in der Datenbank zu speichern.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 19:56:46 Uhr.
|