Ti faccio un esempio:
Nella tua tabella inserisci un nuovo campo chiamato ORD (qui dove salverai la posizione del tuo record da visualizzare)

<form name="ordina" action="ordina.php" method="post">
Codice PHP:
<?php
// connessione al DB
$sql "select * from tua tabella order by id";
$result mysql_db_query$database$sql$db) or die(mysql_error());
$nr=mysql_num_rows($result);
echo 
"<table width=100%><tr>";
echo 
"<td>primo campo</td><td>posizione record</td><td>terzo campo</td></tr>";
while(
$riga=mysql_fetch_array($result))
{
echo 
"<tr>";
echo 
"<td>".$riga["primo campo"]."</td>";
echo 
"<td>";
?>
<select name="ord[<?= $riga['id']; ?>]">
    <?php
        
for ($k=1$k<$nr+$k++)
        {
        echo 
"<option value=\"$k\"";
        if(
$k==$riga['ord']) echo "selected";
        echo 
">$k</option>\n";
        }
    
?>
    </select>
<?php
echo "</td>";
echo 
"<td>".$riga["terzo campo"].</td>";
echo "
</tr>";
}
echo "
</table>";
?>
<input type="submit" name="invia" value="invia">
</form>

In questo modo per ogni riga del tuo record hai un menu a tendina dove inserirai la posizione del tuo record.

Il form lo invii al file: ordina.php
Codice PHP:
<?php
// connessione al DB
if(isset($_POST['ord'])){
    while(list(
$key,$val)=each($_POST['ord'])){
        
$sql " UPDATE TABELLA set ord = $val where id = $key";
        
$ordina mysql_db_query$nome_db$sql$db) or die(mysql_error());
    }
}
echo 
"ordine aggiornato";
?>
Io utilizzo questo metodo per assegnare la posizione ai record.
POI la query che li visualizza la farai:
..... order by ORD DESC

Naturalmente questa e`una pagina riservata ADMIN
Spero di essermi spiegato bene, se hai problemi posta qui.
Ciao