kostenloser Webspace werbefrei: lima-city


galerie: nächstes/vorheriges bild

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    till133

    till133 hat kostenlosen Webspace.

    ich habe eine bildergalerie programmiert. f?r jedes bild wird ein datensatz in einer tabelle erzeugt und der name, titel, id.... gespeichert. die bilder rufe ich ?ber die id auf. wenn ich nun in der einzalansicht der bilder bin, w?rde ich gerne einen link f?r das vorherige als auch f?r das n?chste bild einer kategorie einf?gen. ich wei? aber nicht wie ich das realisieren soll. erst habe ich ?berlegt, ich m?sste einfach die id des aktuellen bildes +1 bzw. -1 rechnen und schon h?tt ich das n?chste bzw. vorherige. nur das funktioniert mit den kategorien nicht, da theoretisch zwei datens?tze von zwei bildern verschiedener kategorien aufeinander folgen k?nnen. au?erdem wenn ich bilder l?sche und eine bestimmte id nicht mehr vergeben ist f?hrt das ganze zu einem problem.
    dannach habe ich ?berlegt, das ganze m?glichweise mit einer while schleife zu realisieren. dabei soll er so lange +1/-1 rechnen bis er einen passenden datensatz gefunden hat. dabei gibt es aber auch zwei probleme: zum ersten w?rde das evtl. enorm viele datenbank abfragen produzieren und zum anderen g?be es probleme beim ersten, bzw. letzten bild, weil dort kein passender datensatz folgt, bzw. vor dem bild ist. nun habe ich leider keine idee, wie ich das ganze l?sen k?nnte.
    gibt es evtl. in mysql die m?glichkeit, dass er nicht den datensatz selektiert, den ich eigentlich ausgew?hlt habe, sondern den n?chsten, oder sowas in der art?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. du kannst doch pr?fen ob der n?chste datensatz existiert, wenn nich den darauf folgenden, wenn dieser auch nich existiert dann eben nichts ausgeben, denn das man zwei hintereinander liegende bilder l?scht is ja eher unwahrscheinlich

    $pruef = mysql_query("SELECT * FROM blabla WHERE id='$next_id'") or die(mysql_error());
    if(@!mysql_fetch_array($pruef)) { echo "jo n?chster datensatz existiert"; }
  4. Du k?nntest das ganze in Form einer verketteten Liste machen, d.h. du speicherst einfach die id des vorherigen und des n?chsten Bildes auch noch in die Tabelle!
    So brauchst du nur eine Abfrage und wenn du ein Bild l?scht musst du es halt ?ndern aber das ist ja nicht so schlimm (finde ich).
  5. Autor dieses Themas

    till133

    till133 hat kostenlosen Webspace.

    @lucas
    das kommt f?r mich nicht in frage, denn die datens?tze aller kategorien werden in einer tabelle gespeichert. d.h. m?glicherweise ist die id des n?chsten bildes einer kategorie um 50 gr??er.

    @shok
    das k?me schon eher in frage. nur ergibt sich da folgendes problem. die galerie existiert schon und beinhaltet schon ?ber 400 bilder. ein script extra um die fehlenden eintr?ge bei jedem bild hinzuzuf?gen w?re wahrscheinlich sehr m?hsam. au?erdem will ich sp?ter noch die m?glichkeit integrieren, dass man die bilder nach bestimmten kriterien(z.B. anzahl der kommentare) sortieren kann. dann h?tte ich wieder genau das selbe problem, weil reihenfolge der "liste" dann v?llig anders w?re
  6. 0******a

    SELECT * FROM blabla WHERE kat = $current_cat AND id > $current_id;

    Geht nat?rlich nur, wenn du die Kategorie auch in der Tabelle abgebildet und gepflegt hast. Wenn deine Tabelle das nicht beinhalten sollte, dann solltest du das nachholen.

    Der erste Datensatz ist das neue aktuelle Bild, das Bild f?r zur?ck ist das, was vorher $current_id gewesen ist und das n?chste Bild ist das, was als zweiter Datensatz vorkommt.

    Ausnahmen:
    Wenn das erste Bild in der Kategorie angezeigt wird, dann gibt es kein vorheriges Bild. Zur Unterscheidung sollte $current_id dann auf 0 gesetzt werden. Das geht aber nur, wenn id in der Tabelle als AUTO_INCREMENT definiert ist (das erste Bild bekommt dann automatisch die ID 1). Wenn man beim letzten Bild in der Kategorie angelangt ist, dann gibt es keinen zweiten Datensatz. Beide Ausnahmen k?nnen und m?ssen PHP abgefangen werden.
  7. Autor dieses Themas

    till133

    till133 hat kostenlosen Webspace.

    da ich die kategorie id bei jedem bild mitf?hre sollte das funktionieren. danke f?r die ausf?hrliche beschreibung
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!