Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Bilder aus DB auslesen / Pfad in DB [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




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

 
wt-e
21-03-2006, 12:47 
 
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!

 
Kropff
22-03-2006, 14:59 
 
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

 
Kropff
23-03-2006, 11:34 
 
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

 
Kropff
24-03-2006, 09:55 
 
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

 
Kropff
28-03-2006, 21:27 
 
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.

 
wahsaga
29-03-2006, 10:53 
 
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

 
Kropff
06-04-2006, 22:18 
 
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

 
wahsaga
07-04-2006, 11:22 
 
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 ...?


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:20 Uhr.