Lo puoi fare anche con due query, e i dati che devi ricevere sono pochi e di sicura reperibilità.
Dunque:
immagina di avere una tabella come questa, in html intendo:
codice:
primo utente [--][down]
secondo utente [up][down]
terzo utente [up][down]
...
N utente [up][--]
dove i link sono i seguenti:
[up]: pagina.php?id=ID&pos=POS&action=up
[down]: pagina.php?id=ID&pos=POS&action=down
[--]: nessun link
Codice PHP:
#ricevi: pos, id azione
$id = $_GET['id']; # l'id da aggiornare
$pos = $_GET['pos']; # posizione attuale
$action = $_GET['action']; # azione, up, down
# imposti i paramentri per le query sql
if($action == 'up') {
$newpos = $pos -1;
} elseif($action == 'down') {
$newpos = $pos +1;
}
$query_upd = "UPDATE tabella SET classifica = '$newpos' WHERE classifica = '$pos' LIMIT 1";
$query_ord = "UPDATE tabella SET classifica = '$pos' WHERE classifica = '$newpos' AND id != '$id' LIMIT 1";