Un problema del genere l'ho risolto in questo modo
Ti devi creare 2 query
1 per vedere se esiste una foto successiva
2 per vedere se esiste una foto precedente
codice:
$id_foto_passato=$_GET['id_foto'];
$id_speciale_passato=$_GET['id_spec'];
$query ="SELECT fotospeciali.id_foto,speciali.id FROM fotospeciali, speciali WHERE fotospeciali.id_foto>$id_foto_passato AND speciali.id=$id_speciale_passato ORDER BY fotospeciali.id_foto Limit 1";
$result =@mysql_query($query,$db);
$id_max=@mysql_result($result,0,"fotospeciali.id_foto");
$query ="SELECT fotospeciali.id_foto,speciali.id FROM fotospeciali, speciali WHERE fotospeciali.id_foto<$id_foto_passato AND speciali.id=$id_speciale_passato ORDER BY fotospeciali.id_foto DESC Limit 1";
$result = @mysql_query($query,$db);
$id_min=@mysql_result($result,0,"fotospeciali.id_foto");
$links=(!empty($id_max))?"<a href=\"?id_foto=$id_max&id_spec=$id_speciale_passato\">prossima":"";
$linkp=(!empty($id_min))?"<a href=\"?id_=$id_min&id_spec=$id_speciale_passato\">precedente</a>":"";
alla fine se esiste una foto successiva ti trovi nella variabile $links il link con la scritta successiva
e la stessa cosa vale per $linkp per il link precedente