mercredi 27 juillet 2005

change_ordre($_table, $_field, $_clause, $_old, $_new)

/*
Methode qui change l'ordre d'objets dans une base
en insérant un objet puis on décallant tous les autres
Normalement, ceci ne laisse pas de trou
$_clause doit commencer par le mot WHERE
*/
function change_ordre($_table, $_field, $_clause, $_old, $_new) {
//on monte dans la liste
$query="";
if($_new < $_old) { $query="UPDATE $_table SET $_field={$_field}+1 $_clause AND $_field>=$_new AND $_field<$_old"; } if($_new > $_old) {
$query="UPDATE $_table SET $_field={$_field}-1 $_clause AND $_field>$_old AND $_field<=$_new"; } if($query) { //il faut isoler l'élément courant
mysql_query("UPDATE $_table SET $_field=-1 $_clause AND $_field=$_old");

#print $query;
mysql_query($query) or print "!--$query-->";

#MAJ de l'élément en lui-même
mysql_query("UPDATE $_table SET $_field=$_new $_clause AND $_field=-1");
}
}

1 commentaire: