Texte und Bilder in Tabelle anzeigen

tiede

Grünschnabel
Hi Ihr!

Könnt ihr mir helfen?

Ich hab in der Datenbank die Pfade der Bilder:
ID, Pfad und Dateiname
In einer anderen Tabelle habe ich die Namen:
ID, Name

Wie bekommen ich foldende Tabelle in PHP hin:
Statische Nummerierung, Name, Bild
Also ungefähr so:
-----------------------
|1|Paul |Bild Paul |
|2|Hans|Bild Hans|
-----------------------

Wenn ich dies nach Namen sortieren lasse (ORDER BY), soll es so aussehen:
------------------------
|1|Hans |Bild Hans|
|2|Paul |Bild Paul |
------------------------


Ich verzweifel an diesen Bilder, bitte um Hilfe.
Gruß und Danke :)
 
So wie ich das sehe, ist das doch eine ganz eine Verknüpfung von zwei Tabellen.
Code:
SELECT pfad, dateiname, name FROM pfade, namen WHERE pfade.id = namen.id ORDER BY ...
Für die Nummerierung sorgt eine ganz einfache Schleife.
PHP:
$x = 1;
while ($tabelle[$x] = mysql_fetch_array(...)){
    $x++;
}
Oder ist da noch eine weitere Unklarheit, die ich hier nicht sehe?
 
Danke für die schnelle Antwort:

Auszug aus meinem Code, mal nur mit der Bildertabelle

PHP:
$sql = "SELECT bild_id, bild_pfad, bild_name from bilder_tb";

res_query = mysql_query($sql) od die("Anfrage nicht erfolgreich");

Dann die Tabellenüberschriften in HTML und weiter mit PHP:

<?PHP
while ($res = mysql_fetch_array($res_query)) {
?>

Und die Tabelle in HTML
<tr>
<td><?=$res['bild_id']?></td>
<td><?=$res['bild_pfad']?></td>
<td><?=$res['bild_name']?></td>
</tr>
<?PHP
}
?>

Damit habe ich eine Tabelle mit Text, aber nicht das Bild.
Wie wird das Bild in <td><?=$res['bild_name']?></td> angezeigt

Die Nummerierung funktioniert leider bei meinem Beispiel nicht:

PHP:
<?PHP
$x = 1; 
while ($res[$x] = mysql_fetch_array($res_query))
$x++;  {
?>
<tr>
<td><?=$res['bild_id']?></td>
<td><?=$res['bild_pfad']?></td>
<td><?=$res['bild_name']?></td>
</tr>
<?PHP
}
?>

Bitte nochmals um Hilfe! Danke
 
Ok, das zweite zuerst. Wenn du die Ausgabe in die gleiche Schleife wie das einlesen packst, kannst du dir die zweite Dimension in der $res sparen. Das [$x] kann also raus. Außerdem war die öffnende Klammer verkehrt gesetzt und die Erhöhung des Zählers muß ans Ende.

Und für das Bild baust du einen ganz normalen Image Tag ein.
PHP:
<?PHP 
$x = 1;  
while ($res = mysql_fetch_array($res_query)) {
?> 
<tr> 
<td><? echo $x; ?></td> 
<td><?=$res['bild_id']?></td> 
<td><?=$res['bild_pfad']?></td> 
<td><?=$res['bild_name']?></td> 
<img src="<? echo $res['bild_pfad'].$res['bild_name']; ?>">
</tr> 
<?PHP 
$x++;
} 
?>
 
Hi!

Die Nummerierung können wir abhaken, toll! Funktioniert!

Nur die Bilder...

So sieht es zur Zeit in der DB aus
---------------
bild_id
1
2
---------------
bild_pfad
bilder/gesicht/
bilder/gesicht/
--------------
bild_name
hans.jpg
peter.jpg


So hab ich das jetzt gemacht:

PHP:
<?PHP  
$x = 1;   
while ($res = mysql_fetch_array($res_query)) { 
?>  
<tr>  
<td><? echo $x; ?></td>  
<td><?=$res['bild_id']?></td>  
<td><img src="<? echo $res['bild_pfad'].$res['bild_name']; ?>"> <td>  
</tr>  
<?PHP  
$x++; 
}  
?>

Funktioniert leider nicht, nur der Kasten mit rotem Kreuz.

Wenn ich den Pfad mit Bildnamen im Browser eintrage, wird das Bild angezeigt.

Bitte zeig mir mein bestimmt doofen Fehler, danke!
 
Kann eigentlich nur an den Daten liegen. Je nachdem, wie du die Pfade abgespeichert hast kann es natürlich sein, daß zwischen Pfad und Dateinamen noch ein / muß. Wenn es das nicht ist, nimmst du am besten mal den erzeugten Quellcode und postest den entsprechenden Abschnitt hier.
 
Alles Fragen sind beantwortet und das Problem ist gelöst!
Eine Frage hab ich aber noch: Kann ich die erste Ergebniszeile
farbig markieren? Wenn ja, wie? Ich habe nicht einmal eine Idee!

-----------------------
|1|Paul |Bild Paul | In rot
|2|Hans|Bild Hans| Bleibt Standardfarbe
|3|Horst|Bild Horst| Bleibt Standardfarbe
-----------------------
Der Code:
PHP:
<?PHP   
$x = 1;    
while ($res = mysql_fetch_array($res_query)) {  
?>   
<tr>   
<td><? echo $x; ?></td>   
<td><?=$res['bild_id']?></td>   
<td><img src="<? echo $res['bild_pfad'].$res['bild_name']; ?>"> <td>   
</tr>   
<?PHP   
$x++;  
}   
?>

Habt ihr eine Idee?

Gruß
 
PHP:
if ($x == 1)
    $res[bildname] =  '<font color="red">'.$res[bildname].'</font>';
gleich nach den while wäre z.B. ne Möglichkeit.
 
Och man, warum versteh' ich das nicht!

Wenn ich die erste Nummerierung und die dazugehörige Bild_ID
farbig haben möchte, wo bau ich dass denn ein?

Einmal noch, bitte!

Gruß
 
Zurück