[PHP-users 4088] Re: あるSQL テーブルの中でユニークなランクをつけられたユーザのランクを変更する場合の方法
kz-ml
php-users@php.gr.jp
Mon, 3 Dec 2001 17:57:02 +0900
すいません、自己レスです。
> $useridはランクを変更したいユーザの固有ID
> $newrank は上記ユーザの新ランク
>
> function move($userid, $newrank){
> $sql = "UPDATE テーブル SET ランク=ランク+1 WHERE ランク>=$newrank";
> mysql_query($sql);
> $sql = "UPDATE テーブル SET ランク=$newrank WHERE ユーザID=$userid";
> mysql_query($sql);
> $sql = "SELECT ユーザID FROM テーブル ORDER BY ランク,ユーザID ASC";
> $i = 0;
> while($row=mysql_fetch_array(mysql_query($result))){
> $neworder[$i] = row['ユーザID'];
> $i++;
> }
> foreach($neworder as $k=>$v) {
> mysql_query("UPDATE テーブル SET ランク=$k WHERE ユーザ
> ID=$v");
> }
> }
>
上記の関数ですが、もう少し簡単にできたみたいです。。
function move($userid, $newrank){
$sql = "UPDATE テーブル SET ランク=ランク+1 WHERE ランク>=$newrank";
mysql_query($sql);
$sql = "UPDATE テーブル SET ランク=$newrank WHERE ユーザID=$userid";
mysql_query($sql);
$sql = "SELECT ユーザID FROM テーブル ORDER BY ランク,ユーザID ASC";
$i = 0;
while($row=mysql_fetch_array(mysql_query($result))){
mysql_query("UPDATE テーブル SET ランク=$i WHERE ユーザID=$row[ユーザ
ID]");
$i++;
}
}