Archiv verlassen und diese Seite im Standarddesign anzeigen : Bilder aus DB auslesen / Pfad in DB
smarty68 21-03-2006, 12:30 Hallo Leute,
habe ein Problem mit Bildern. Hab schon im Forum gelesen konnte aber keine brauchbaren Infos für mein Problem finden.
Habe gelesen, dass es zwei Tabellen, eine in der alle Daten stehen ausser die Bilddaten.
Die Bilder liegen auf dem Server in einerm Verzeichnis
/bilder/bild/MB1.jpg
/bilder/bild/MB2.jpg
.......... u.s.w
In der zweiten DB- Tabelle " bildpfad" habe ich dieSpalten
"id_bild " und "pfad" generiert.
wobei ich die Synatx: /bilder/bild/MB1.jpg benutzt habe.
Meine Frage, ist die Syntax und ist der Tabellentyp InnoDB richtig?
Danke für die Hilfe
Versuche es mal wenn du / weglässt also das erste ganz am anfang vom pfad
...nur ne idee ka obs geht
Gruß Jan
smarty68 22-03-2006, 14:49 Hallo Leute
habe immer noch das Problem mit dem Pfad in mysql DB.
hbae den Pfad in der mysql DB in einer extra Tabelle namens "bilderpfad"eingegeben.
Tabelle: bilderpfad
bildnr typ pfad typ
1 Int(5) /bilder/bild1/MB1.jpg varchar(30)
die Bilder sind im Verzeichnis:
local Server auf /bilder/bild1/MB1.jpg
/bilder/bild1/MB2.jpg
u.s.w
das script:
$verbinden=mysql_query("SELECT `pfad` FROM `bilderpfad` where `bildnr`=$nummer");
while($row = mysql_fetch_object($verbinden))
{
echo $row-> pfad;
}
mysql_free_result ($verbinden);
$zeiger=mysql_query("SELECT `Marke` FROM `autodb` where `lfdnr`=$nummer");
$result = mysql_fetch_array($zeiger);
{
echo $datensatz1=$bildpfad ['pfad']."<br>";
echo $datensatz2 = $result['Marke'];
}
Ausgabe auf dem Bildschirm:
/bilder/bild1/MB1.jpg
BMW
Wie man sehen kann , wird der Pfad aus der Abfrage ausgegeben,
jedoch nicht das Bild, welches im Verzeichnis liegt.
Was ist falsch?
Danke!
schon mal was vom <img>-tag gehört?
gruß
peter
smarty68 23-03-2006, 11:21 Danke Dir für Deinen Tipp.
Hat jedoch nichts gebracht.
Ich bin am Ende, mit meinem Latin
und wieso funktioniert das nicht?
echo '<img src="'.$bildpfad ['pfad'].'"><br>';
hast du dann einen broken link?
gruß
peter
smarty68 24-03-2006, 07:47 Hallo Peter,
danke für Deine Hilfe.
Habe echo '<img src="'.$bildpfad ['pfad'].'"><br>'; probiert.
Funktioniert noch nicht.
Es wird ein LEERES BILD ausgegeben.
Das Bild erscheint nicht.
Der pfad "bilder/bild1/MB1.jpg" ist doch ein array? dann müsste man doch mysql_fetch_array ($verbinden)) und nicht wie gerade verwendet
mysql_fetch_object($verbinden)) schreiben?
Oder ist die Abfrage nach dem pfad falsch?
$verbinden=mysql_query("SELECT `pfad` FROM `bilderpfad` where `bildnr`=$nummer");
while($row = mysql_fetch_object($verbinden))
Es müsste doch ein Streaming vom server kommen,wenn es funkionieren würde?
Ich weiss nicht weiter!
Danke für Deine Hilfe.
P.S bin langsam am Verzweifeln
ist $nummer immer einzigartig, oder gibt es mehrere bilder dazu?
du solltest deine ganze konstruktion noch mal überdenken.
- warum einmal fetch_object?
- warum dann fetch-array?
verknüpfe die beiden tabellen und arbeite dann mit
joins (http://www.php-resource.de/forum/showthread.php?threadid=28292)
dann hast du nur eine abfrage, und alle daten, die du benötigst.
gruß
peter
smarty68 28-03-2006, 11:12 Hallo zusammen,
habe zwei Tabellen, die ich miteinander verbinde.
Anschliesend frage ich die beiden Tabellen ab und bekomme keine Ausgabe(Kein Bild und Daten).
Script:
{
$sql ='SELECT bilderpfad.pfad,autodb.Marke,autodb.Modell,autodb.Kilometer,autodb.Baujahr,autodb.Erstzulassung,auto db.Getriebeart,autodb.Farbe,autodb.Vorbesitzer FROM bilderpfad,autodb WHERE autodb.lfdnr=bilderpfad.bildnr';
$zeiger=mysql_query($sql);
//Schleife und holen der Abrage
WHILE($result=mysql_fetch_array($zeiger));
}
{
echo '<img src="'.$result ['bilderpfad.pfad'].'"><br>';
echo $datenresult=$result['autodb.Marke'];
}
Weiss nicht weiter.
Besten Dank für HILFE!
mrhappiness 28-03-2006, 11:16 Ist die Bedingungautodb.lfdnr=bilderpfad.bildnrdenn mal erfüllt?
Beim Zugriff auf die Ergebnisse solltest du den Tabellennamen weglassen.
$result ['pfad'] statt $result ['bilderpfad.pfad']
Schau dir $result mal mit print_r an
smarty68 28-03-2006, 20:10 Hallo erst mal Danke für Deine Antwort.
Habe das Script abgeändert.
Leider ohne Erfolg.
Die SQL Abfrage:
SELECT bilderpfad.pfad, autodb.Marke, autodb.Modell, autodb.Kilometer, autodb.Baujahr, autodb.Erstzulassung, autodb.Getriebeart, autodb.Farbe, autodb.Vorbesitzer
FROM bilderpfad, autodb
WHERE autodb.lfdnr = bilderpfad.bildnr
LIMIT 0 , 30
läuft und Bedingung " autodb.lfdnr = bilderpfad.bildnr " ist o.k
echo '<img src="'.$result ['pfad'].'"><br>';
auf
print_r ('<img src="'.$result ['pfad'].'"><br>');
geändert.
Auf Bildschirmausgabe erscheint das bekannte Bild mit der ROTEN KREUZ. Eigentschaften: Größe der Datei :unbekannt nicht im Cache
Könntest Du mir weiterhelfen, wäre super.
Danke
Auf Bildschirmausgabe erscheint das bekannte Bild mit der ROTEN KREUZ. Eigentschaften: Größe der Datei :unbekannt nicht im Cache
eine ganz dumme frage. liegen die bilder im rgb-format vor?
was gibt print_r($result) aus?
gruß
peter
smarty68 29-03-2006, 10:38 Hallo Peter,
danke für Deinen Tipp.
Bei der print_r('<img src="'.$result ['pfad'].'"><br>');
kommt eben das genannte LEERE BILD.
Es kommen keine Daten an.
Die Bilder liegen im Verzeichnis mit dern Rechten 755 d.h.
rwxr-xr-x
Weiss nicht woran es liegt.
Original geschrieben von smarty68
Bei der print_r('<img src="'.$result ['pfad'].'"><br>');
kommt eben das genannte LEERE BILD.
Wie sieht die Ausgabe aus?
fan-maec 29-03-2006, 12:08 Hallo smarty68,
probier doch mal dies, so in etwa hab ich es bei mir.
table bildpfad:
Feld: lfdnr Typ: int(5) autoincrement primärschlüssel, da es ja nur ein Datensatz mit diesem einen Bild gibt
Feld: id_bild Typ: int(5)
Feld: pfad Typ: varchar(30) (hier gibst du deinen relativen Pfad vom script zum Platz des Bildes ein. z.B. '../../bilder/bild1/mercedes1.jpg')
Einträge sehen z. B. so aus:
lfdnr: 1
id_bild: 1
pfad: '../../bilder/mercedes/c180_1.jpg'
lfdnr: 2
id_bild: 1
pfad: '../../bilder/mercedes/c180_2.jpg'
lfdnr: 3
id_bild: 1
pfad: '../../bilder/mercedes/c180_3.jpg'
lfdnr: 4
id_bild: 2
pfad: '../../bilder/mercedes/c200_1.jpg'
usw...
table autodb
Feld: marke
Feld: modell
usw....
Feld: id_bild Typ: int(5) (unbedingt gleicher Typ und Feldname wie in der Tabelle bildpfad - erleichtert so manches!)
Wenn du z. B. nach einem Mercedes ($marke) in einem Formular suchst, dann sollen die Daten des Mercedes mit dem Bild escheinen.
Klammern, Strichpunkte, Anführungszeichen aufpassen, man vergisst da schnell eine.
Auswerter-Script:
connect();
//kannst auch inner join verwenden
$sql="SELECT autodb.marke,autodb.modell, usw, bildpfad.id_bild, bildpfad.pfad FROM bildpfad,autodb WHERE autodb.marke='$marke' AND autodb.id_bild=bildpfad.id_bild";
$result=mysql_db_query($db,$sql);
$max=mysql_num_rows($result);
echo $max;
echo " Einträge gefunden.";
echo "<br />";
while ($row=mysql_fetch_array($result)){
//echo was auch immer du angezeigt haben willst
//hier kommt dein Bild!
echo "<img src='$row[pfad]'>";
}
Sollte es so wider erwarten nicht klappen, dann die sql-Abfrage abwandeln.
smarty68 29-03-2006, 14:49 Hallo
ich danke Dir für Dein Tipp.
Es funktioniert. Fehler war ein Anführungszeichen im < imag -Tag.
VIELE DANK !!
GRüße
smarty68 06-04-2006, 22:16 Hallo
was ist falsch?
echo '<img src="'.$result['/webverzeichnis/bild/'].'" width="74" height="125" > <br>';
Bilder liegen im Verzeichnis:
/webverzeichnis/bild/MB1.jpg
/webverzeichnis/bild/MB1.jpg
Bekomme "Leeres Bild" wie muß Pfad richtig sein?
Danke
ich rate einfach mal
echo '<img src="webverzeichnis/bild/'.$result['bild'].'" width="74" height="125" > <br>';
aber ohne deinen query wird es schwer.
gruß
peter
smarty68 07-04-2006, 07:23 Guten Morgen Peter,
danke für Deine Antwort.
Habe es ausprobiert, funktioniert leider nicht.
Hier ist meine Query:
$qry = mysql_query("SELECT `pfad` FROM `bilderpfad`,`autodb` WHERE `bildnr` =`lfdnr`");
Habe eingegeben:
echo '<img src="webverzeichnis/bild/'.$result['pfad'].'" width="74" height="125" > <br>';
Die es list der Pfad in der DB zum Verzeichnis.
Gruß
Martin
Original geschrieben von smarty68
Habe eingegeben:
Und welche HTML-Ausgabe kommt dabei heraus?
*seufz*, wieso muss man sowas eigentlich immer wieder explizit erfragen - sind hier so viele D$&%§n unterwegs, die sich einen Scheiß darum kümmern, was für einen HTML-Code sie eigentlich erzeugen ...?
|
|