Bild ausgeben (Php + MySql)

Spiderlu

Grünschnabel
Bild ausgeben (Php + MySql)

Hallo

Ich will gerne Bilder in einer Tabelle anzeigen zulassen und zwar wie folgt :
--> 1) Habe einen Ordner angelegt auf meine Webserver
--> 2) In meiner MySql Tabelle habe ich eine Spalte dazugemacht "Bild" wo ich dann den
Namen des Bildes eingeben habe
--> 3) Über PHP wollt ich das Bild anzeigen lassen

PHP:
<img src=/Homepage2/images\".$row->Bild\">

Weiss aber jetzt nicht ob das klappt und auch bei der Spalte "Bild" welchen Datentyp soll ich da nehmen. Danke für eure Hilfe.

PS: Nehme auch gerne andere Vorschläge an :)
 
Zuletzt bearbeitet:
Generell ist das schon recht gut, was du da machst.

Als Datentyp in der Tabelle kannst du ruhig TEXT nehmen. Falls du die Bilder direkt in der Datenbank speichern möchtest, dann logischerweise einen BLOB (bis 65 kb) bzw. MEDIUMBLOB (bis 16 mb).

Der Quelltext würde eher so aussehen:

PHP:
<img src="Homepage2/images/ <?php echo $row->Bild ?> ">

Gruß,

Isac
 
Hab noch ne Frage den Pfad für das Bild in der Datenbank wir muss ich den genau angeben
Muss ich den kompletten Pfad vom WebServer eingeben oder wie
 
Du kannst den kompletten Pfad angeben, brauchst du aber nicht.

Falls du den absoluten Pfad angibst, würde das so aussehen:

PHP:
<img src="<?php echo $row->Bild ?> ">

Da in der Variable ungefähr dies stehen würde:

HTML:
http://domain.tld/homepage/images/bild.jpg

Wenn du den relativen Pfad angibst, dann reicht nur "bild.jpg". Musst nur darauf achten, dass das Bild auch wirklich relativ zu dem Dokument liegt. In deinem Beispiel unter "Homepage2/images/".

Isac


Isac
 
PHP:
<img src='bilder/".$name.".jpg' alt=''>

wenn in der DB steht "baum" jetzt wird zuerst der Pfad (falls nötig), dann der Bildname (Baum) und am Schluss die Endung ".jpg" angegeben.

Falls in deiner DB folgendes steht "bilder/baum.jpg" wäre es nur
PHP:
<img src='$name' alt=''>

Achtung... es ist in einem PHP Echo drin bei mir.
 
Vielen Dank für deine Hilfe hat funktionniert :)

Hab nur vergessen http:// in den Pfad hineinzuschreiben.

Danke vielmals
 
Hab doch noch ne Frage :)

Ich hab diese Schleife programmiert :
PHP:
        <?
	 for ($i = 0; $i < (mysql_num_rows($resultat) & mysql_num_rows($Bilder)); $i++)
    {
	$Titel = mysql_result($resultat, $i, "Titel");
	$Interpret = mysql_result($resultat, $i, "Interpret");
	$Preis = mysql_result($resultat, $i, "Preis");
	$Spieldauer = mysql_result($resultat, $i, "Spieldauer");
	$Qualität = mysql_result($resultat, $i, "Qualität");
	$Label = mysql_result($resultat, $i, "Label");
	$Warenkorb = mysql_result($resultat, $i, "Warenkorb");
	$Bild = mysql_result($row,$i,"Bild");

	echo "<tr> <td>$Titel </td> <td>$Interpret </td> <td>$Preis </td> <td>$Spieldauer </td> <td> $Qualität</td> <td>$Label</td> <td> "?> <img src="<? echo $row["Bild"] ?> "> <? "</td> <td>$Warenkorb</td></tr>";
	}
	 ?>

Diese Schleife bewirkt dass die Einträge in der Tabelle angezeigt werden aber durch die Schleife. Hab jetzt 3 Eintrage in der Datenbank und auf jede Reihe zeigt er mir jetzt das selbe Bild.
 
Benutze eine while schlaufe

PHP:
while(list($name) = mysql_fetch_row($result)){
					echo "<tr><td align='left' width='20%'><img src='bilder/".$name.".jpg' alt=''></td></tr>";
				}

Solange es ein MySQL resultat hat, speichert es den 1. Wert des Resultats in die Liste $name und gibt diese aus.

Beispiel an dein Script anpassen und es sollte funktionieren.
 
Sry aber ich bekomme es nicht hin um es in mein Script zu machen. Kannst du mir mal genau zeigen wo du alles hineinstells
 
PHP:
while(list($Titel, $Interpret, $Preis......) = mysql_fetch_row($result)){
                    echo "<tr><td align='left' width='20%'><img src='bilder/".$titel.".jpg' alt=''></td></tr>";
echo "<tr><td align='left' width='20%'>$interpret</td></tr>";
echo "<tr><td align='left' width='20%'>$Preis</td></tr>";
echo "<tr><td align='left' width='20%'>$interpret</td></tr>";
                }

Erklärung:
Deine Whileschlaufe läuft so oft durch bis keine Datensätze mehr aus deinem mysql_fetch_row kommen.
Das Resultat der MySQL suche (Select) wird in Variablen gespeichert, wobei die 1. Variable mit der 1. MySQL spalte des Resultats gefüllt wird.

Select blub From tabelle where id = 1 - 1. Variable würde den Wert von "blub" enthalten.

Select blub, test From Tabelle where id = 1 - 1. Variable wieder "blub" zweite Variable "test".

So erzeugst du für jeden Rückgabewert der MySQL abfrage eine Variable. Die Schlaufe läuft jetzt so lange ab bis die Variable leer ist.

Hoffe ist verständlich. Versuch es mal und wenn es nicht klappt poste ich dir, die Lösung zu deinem Script. Jedoch solltest du es jetzt schaffen und ein Erfolgserlebnis haben:D
 
Zurück