Webstatt.org - Community seit 2006 - 2012 (2024?)

Bildergalerie nächtes Bild

user-150
04.09.2006 16:15

Mir is kein besserer Titel eingefallen traurig

Also die Sache: Ich habe eine Bildergalerie, die einfach die Ordner und die darin befindlichen Bilder ausliest. Wenn man auf ein Bild klickt, kommt man auf eine Detail/Beschreibungsseite (z.b. hier). Die Beschreibungen und Kommentare speicher ich in ner Datenbank.
Was ich jetzt will, dass man in der Detail/Beschreibungsseite die Möglichkeit hat, das vorherige bzw vorrangende Bild anzeigen zu lassen.

Wenn jemand eine konkrete Idee oder Anregungen hat, raus damit lächeln

Mehr schlaue Sprüche gibt es auf: anotherstyle.de Psicologia
user-265
04.09.2006 16:26

Naja, verteile ID's an die Bilder und dann ID++ oder ID-- und per GET oder POST übertregen... so hab ichs gemacht.

Avatar user-253
04.09.2006 16:48

Genau. Aller Wahrscheinlichkeit nach haben die Bilder in der Datenbank ja schon eine ID. Oder speicherst du die Kommentare über den Dateinamen?

user-150
04.09.2006 19:17

Hm so ist es, ich speichere die Kommentare über den Dateinamen.
Die Bilder tauchen erst in der DB auf, wenn ein Kommentar zu Ihnen geschrieben wird, und dann wird eine ID vergeben, die richtet sich nach der reihenfolge der Kommentare und nicht nach dem erscheinen in der galerie

Mehr schlaue Sprüche gibt es auf: anotherstyle.de Psicologia
Avatar user-253
04.09.2006 19:22

Dann mache doch enfach eine zuätzliche Tabelle mit 2 Feldern

DATEINAME VARCHAR(255) PRIMARY KEY
BILD_POSITION INT

Und dann über die BILD_POSITION auf den Dateinamen davor/danach zuzugreifen

user-150
05.09.2006 05:43

wenn du mir jetzt noch sagen könntest wie ich dann die bilder eines ordner da rein bekomme (kenne mich leider mit diesen sachen noch sehr wenig aus traurig)

wie ist es eigentlich wenn ich ein bild lösche, gibt es da was komfortableres, als das bild und dessen bild_position von hand zu löschen?

danke für eure mühen!

Mehr schlaue Sprüche gibt es auf: anotherstyle.de Psicologia
Avatar user-253
05.09.2006 10:52

Du könntest den Bildern auch einheitliche namen geben, beispielsweise geburtstag1,jpg usw dann könntest du aus dem Dateinamen das nächste/vorherige Bild ermitteln.

Zu der Datenbanklösung:
Die Bilder müsstest du natürlich einlesen, beispielsweise mit [dok]read_dir[/dok]

Jaein, also beim Eintrag den dazugehörigen Datenbankeintrag ebenfalls zu löschen ist eigentlich sehr sinnvoll. Alternativ kannst du ja auch jedes Mal abfragen ob das Bild existiert. Wenn ja zeigst du es an wenn nein löschst du den Eintrag und probierst es mit der wiederrum nächst-größeren position

user-150
06.09.2006 15:35

hm vielen dank soweit

Du könntest den Bildern auch einheitliche namen geben, beispielsweise geburtstag1,jpg usw dann könntest du aus dem Dateinamen das nächste/vorherige Bild ermitteln.

So hab ich das eigentlich schon gemacht, allerdings wieder das problem, wenn ein bild gelöscht wird...

Mehr schlaue Sprüche gibt es auf: anotherstyle.de Psicologia
Avatar user-253
06.09.2006 15:45

nö gar nicht, Nehmen wir an $i sei die ID und alle Bilder heissen "bild_ID.jpg"
Dann kannst du einfach in einer Schleife solange hochzählen, bis das nächste Bild gefunden wird

++$i;
while(!file_exists("bild_$i.jpg"zwinkern) {
++$i;
}

Das gibt bei dem letzten Bild in einer Richtung zu einer Endlosschleife. Dies kann man aber ganz simpel pragmatisch lösen, indem man einen "Maximalabstand" definiert. Also die Differenz zweier IDs darf maximal 20 sein.

$j=0;
++$i;
while((!file_exists("bild_$i.jpg"zwinkern) && ($j<20)) {
++$i;
++$j;
}

Michael