Diashow mit Bildern aus einer Datenbank

muh90

Grünschnabel
Hallo,

ich habe folgendes vor.

Ich möchte eine Diashow machen mit Bildern, deren Speicheradresse in einer Datenbank gespeichert sind.
Sie sind auch nicht einzelnd gespeichert sondern immer bis zu 20 bei einem Thema.
Es sollen also die Bilder von einem Thema als Diashow angezeigt werden.

Ausgelesen wir es wie folgt:

PHP:
error_reporting(0);
	  $id = "4";
	  include("dbcon.php");
	  $sqlab="select bild1, bild2, bild3, bild4, bild5, bild6, bild7, bild8, bild9, bild10, bild11, bild12, bild13, bild14, bild15, bild16, bild17, bild18, bild19, bild20 id from bilder where id=" . mysql_escape_string($id);
	  $result=mysql_query($sqlab);
	  $row=mysql_fetch_array ($result);
Kann mir jemand helfen wie ich die Diashow machen kann?
Denn ich habe nur Versionen gefunden wo ein ganzer Ordner als Diashow angezeigt werden.
Und ich kann die Art wie die Bilder gespeichert werden auch nicht mehr ändern, da ich den Ablauf der Webseite sondt komplett zerstören würde.

Vielen Dank
Gruß
 
Was genau stellst du dir denn als Dia-Show vor? Hast du ein Beispiel, wie das aussehen soll?

Grundsätzlich ist die Art, wie die Bilder in der Datenbank abgelegt sind, egal. Es wäre nur für das administrative Handling einfacher, wenn jedes Bild ein einzelner Datensatz wäre, der eine ID hat, und einen Fremdschlüssel, der auf eine Kategorie zeigt. Das hat aber nichts mit deiner Frage zu tun. Nur als Anregung.

Falls du ein fortlaufendes Script haben möchtest, das die Bilder nach einander ohne Benutzereingriff anzeigt und ggf. ein paar Sekunden zwischen jedem Bildwechsel wartet, so muss ich dich enttäuschen. Das ist mit PHP allein nicht möglich. Dafür brauchst du eine Script-Sprache, die im Browser ausgeführt wird. Java-Script bspw. Wenn ich dich richtig verstanden habe, denk ich, das du mit Ajax hier weiter kommst. Du holst also, wie du es schon getan hast, die Bilder-URLs aus der Datenbank und packst sie als Java-Script-Array auf deine Webseite. Dieses Array kannst du dann an ein Dia-Show-Applikation wie z.B. hier beschrieben durchlaufen.
 
select bild1, bild2, bild3, bild4, bild5, bild6, bild7, bild8, bild9, bild10, bild11, bild12, bild13, bild14, bild15, bild16, bild17, bild18, bild19, bild20 id from bilder

Auaaaaa. Hätte SQL einen Fuß, dann würdest du da gerade mit einem Bagger drauf herum springen. So "unnormal" der Vergleich ist, so "unnormal" ist auch deine Tabelle.

Bitte sieh dir mal etwas zu Normalisierung an: http://www.google.de/search?q=normalisierung
 
Zuletzt bearbeitet:
@ZodiacXP : :D

Diese "Speicheradresse" ist als url oder Pfad gemeint, oder? Bitte mach eine Tabelle, die einen eindeutigen Index und nur diese "Adresse" trägt. Allein auf diese Tabelle -nennen wir sie mal BILDER- kannst Du dann per

"SELECT Adresse FROM BILDER"

zugreifen - Hier werden alle Einträge gefunden. Optional packst du in diese Tabelle noch eine Spalte Titel, so dass Du auch nach Titel oder ID suchen kannst. zB

" SELECT Titel,Adresse FROM BILDER WHERE Titel LIKE '%nachts%' "

Womit alle Bildertitel und Adressen(urls,pfade) gefunden werden, wo der Titel nachts in sich trägt. Basics SQL, bitte noch ein bissel lesen. Wenn ein Array an "Strings" zur Suche benutzt werden muss, dann sieht es so aus:

"SELECT * FROM BILDER WHERE Titel IN ('Bild1','Bild2','Bild3')"

Abgesehen davon, natürlich würde es sehr viel mehr Sinn machen, noch eine weitere Tabelle mit dem Namen Playlist zu erstellen, in welcher die Verknüpfung Bild zu zugehöriger Playlist gemacht ist. Aus dieser brauchst Du dann nur noch

" SELECT Bilder_ID FROM Playlist WHERE Playlist.Playlist_ID='1' "

machen. Damit hättest Du die Bilder_IDs aus der ersten Tabelle. Der einzig wahre Job wäre dann, die beiden Tabellen per Innerjoin zu verknüpfen und die SQL-Frage so zu stellen, dass das Ergebnis nur die Adressen rauswirft. Müsste wohl so aussehen :

" SELECT BILDER.Adresse as url FROM BILDER,Playlist INNER JOIN BILDER ON BILDER.Bilder_ID=Playlist.Bilder_ID WHERE Playlist.Playlist_ID='1' "

(!) Vorsicht, könnte fehlerhaft sein, ich bin auch nicht soviel mit SQL unterwegs (!) Einfach mal in PHPMyAdmin ausprobieren.
mfg chmee
 
Es geht hier nicht um gefallen oder nicht gefallen. Du wirst merken, dass du irgendwann Probleme bekommst und deine gesamte Datenbank umschreiben musst, wenn du nur eine Kleinigkeit veränderst. Deshalb lieber mal eine halbe Stunde hinsetzen, durchlesen, verstehen, anwenden. Das erspart dir später viel Zeit.
 
Wenn es nicht um größere Tabellen geht, würd ich doch MySQL ganz weg lassen und einfach nur eine XML-Datei -oder noch simpler eine php-Datei- erstellen, wo die Bilder-Pfade eingetragen sind. Dann wird bei Not eben nur diese Datei geladen und -im Falle eines php-includes- lediglich auf ein fertiges Array zugegriffen.

mfg chmee
 
Zurück