Conviene più query, usando LIMIT per limitare i risultati.
(cerca Mysql LIMIT con Google x saperne di +)
Codice PHP:
//cerco i 6 precedenti, DEVONO essere ordinati in maniera decrescente, altrimenti troverà quelli sbagliati
$precedenti = "SELECT codice FROM product WHERE categoria = '$codplus' AND codice < '$cdxcode' ORDER BY codice DESC LIMIT 6";
//array per memorizzare gli url e stamparli nell'ordine corretto
$url_precedenti=array();
$risultato = mysql_query($interroga, $connessione) or die("Errore...");
while($row = mysql_fetch_array($risultato)){
//nell'array $url_precedenti, salvi gli url;
$url_precedenti[$row[codice]]=...
}
//se gli elementi dell'array sono 6, il primo (cioè quello con id più basso equivale al <<), altrimenti stampi gli elementi dell'array normalmente
if( count($url_precedenti)==6 ) { echo $url_precedenti[0]; }
//stampi i 5 url
foreach($url_precedenti as $url){
echo $url;
}
//cerco i 6 successivi
$precedenti = "SELECT codice FROM product WHERE categoria = '$codplus' AND codice > '$cdxcode' ORDER BY codice ASC LIMIT 6";
$risultato = mysql_query($interroga, $connessione) or die("Errore...");
$contatore=1;
while($row = mysql_fetch_array($risultato)){
if($contatore==6) { //fai l'echo del >>
}else{ //fai l'echo normale }
$contatore++;
}