I've constructed a photo gallery with a dynamic CMS backend that allows the content providers to upload, delete, etc images. All images are stored as reformated jpeg files (processed by the GDLib on upload) and the relevant metadata is stored in a table called `gallery`.

References are made by an integer auto_incremement pkey called, as usual, `id`.

So, if someone clicks a gallery thumbnail, a popup window to display the image opens with a URL referenced var of $id passed to the display.php file which creates the popup content dynamically. For instance:

<a href="display.php?id=1023">

Note: it actually uses a javascript window.open abstraction, but for the sake of simplicity, imagine it's a symantic anchor

Here's the question: Naturally, with auto_increment, if a file is deleted there is a gap created in the $id sequence. Therefore, the next and previous buttons can't simply search a validity check for $id++ or $id-- : I actually have to determine what row the previous result was on, and then query the `id` field values for the previous and next rows.

I'm assuming this will involve some limits and an array, but nothing I've tried is working properly. Any suggestions? Has anyone done this same thing with a similar reference mechanism?


Thanks to a reply on another forum, I have found a solution. I'm posting it here for the integrity of the forum archives and future searchers such as myself :)

For the previous row:

SELECT max(id) FROM `gallery` WHERE id < $currentrecord

And, inversely, for the next row

SELECT min(id) FROM `gallery` WHERE id > $currentrecord

It's so logical it's embarassing I didn't think of it myself. :)


Hehe. :) Glad you got it working! Sorry we couldn't have been of more assistance. Thank you for posting your solution.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, learning, and sharing knowledge.