Deberias utilizar un campo INT para el valor del rango, en lugar de "admin", "moderador" y demas utiliza numeros, ejemplo
0 = usuario normal
1 = moderador
2 = admin
Tu ejemplo:
id - nombre - rango
1 - ramon - 1
2 - ruben - 2
3 - jorge - 0
Código PHP:
<?php
$sql = mysql_query("SELECT * FROM `nombre_tabla` ORDER BY `rango` DESC");
while($row=mysql_fetch_assoc($sql)) {
echo $row['nombre'].'<br />';
}
?>
Imprimiria:
ruben
ramon
jorge
Si quieres puedes excluir a los usuarios normales
Código PHP:
<?php
$sql = mysql_query("SELECT * FROM `nombre_tabla` WHERE `rango` != 0 ORDER BY `rango` DESC");
while($row=mysql_fetch_assoc($sql)) {
echo $row['nombre'].' ('.$row[rango].')<br />';
}
?>
ruben (2)
ramon (1)
Luego tu puedes cambiar esos 2 o 1 por el valor en "texto" con un array o algo..