Thanks for the help sfullman. Although your solution doesn't appear to take averything into account, it is at least the basics of what I've done:
This follows my standard query
$pr_query = mysql_query("SELECT * FROM $prodtable WHERE (prod_id = $prodid)", $db);
followed by check to ensure an empty row hasn't been returned then
list($prod_id, $manu_id, $prod_cat_id, $prod_subcat_id, $prod_status, $prod_offer_status, $prod_rrp, $prod_price, $prod_offer_price, $prod_model, $prod_year, $prod_size, $prod_colour, $prod_image, $prod_image_dim, $prod_image_thumb, $prod_image_thumb_dim, $prod_custval_0, $prod_custval_1, $prod_custval_2, $prod_custval_3, $prod_custval_4, $prod_custval_5, $prod_custval_6, $prod_custval_7, $prod_custval_8, $prod_custval_9, $prod_custval_10, $prod_custval_11, $prod_custval_12, $prod_custval_13, $prod_custval_14, $prod_custval_15, $prod_custval_16, $prod_custval_17, $prod_custval_18, $prod_custval_19, $prod_custval_20, $prod_custval_21, $prod_custval_22, $prod_custval_23, $prod_custval_24, $prod_custval_25, $offer_comments) = mysql_fetch_row($pr_query);
// Previous/Next Discovery (perform query for parent subcategory)
$pevnext_query = mysql_query("SELECT prod_id FROM $prodtable WHERE (prod_manu_id = $brand AND prod_cat_id = $mcat AND prod_subcat_id = $scat AND prod_status = 1) ORDER BY prod_price $disp_prod_order", $db);
//Set a key position and count through it to discover the key of the product we're viewing
$key_pos = "0";
while ($pevnext = mysql_fetch_array($pevnext_query)) {
$product_id = $pevnext['prod_id'];
if ($product_id == $prod_id) {
$prevkey = $key_pos - 1;
};
$key_pos++;
};
//Cater for the first record which would return a $key_pos of -1
switch($prevkey) {
case "-1":
$limit = 2;
$prevkey = 0;
break;
default:
$limit = 3;
}
// Query to get 3 records, prev/current/next unless record is first in which case return current/next
$prevnext_query = mysql_query("SELECT prod_id FROM $prodtable WHERE (prod_manu_id = $brand AND prod_cat_id = $mcat AND prod_subcat_id = $scat AND prod_status = 1) ORDER BY prod_price $disp_prod_order LIMIT $prevkey, $limit", $db);
$prevcount = "1";
while ($prevnext = mysql_fetch_array($prevnext_query)) {
$prevnext_id = $prevnext['prod_id'];
switch($prevcount)
{
case "1":
$prev_id = $prevnext_id;
if ($prev_id == $prod_id) {
$prev_id = "";
};
break;
case "2":
if ($prevnext_id != $prod_id) {
$next_id = $prevnext_id;
};
break;
case "3":
$next_id = $prevnext_id;
break;
}
$prevcount++;
};
if ($prev_id != "") {
$prev_link = "<<<a href=\"" . $PHP_SELF . "?mcat=" . $prod_cat_id . "&brand=" . $manu_id . "&scat=" . $prod_subcat_id . "&prodid=" . $prev_id . "\">PREVIOUS PRODUCT</a>";
};
if ($next_id != "") {
$next_link = "<a href=\"" . $PHP_SELF . "?mcat=" . $prod_cat_id . "&brand=" . $manu_id . "&scat=" . $prod_subcat_id . "&prodid=" . $next_id . "\">NEXT PRODUCT</a>>>";
};
Then the links are displayed using
<p align=right><?PHP echo $prev_link; ?> <?PHP echo $next_link; ?></p>
Like I said, its a bit "dirty" but it works! If anybody can see a way of tidying it up or making it simpler, please make any suggestions 😃