[PHP-users 4091] Re: あるSQL テーブルの中でユニークなランクをつけられたユーザのランクを変更する場合の方法

stormcat(A.K.A. ANYAKU-PENGUIN) php-users@php.gr.jp
Mon, 03 Dec 2001 18:48:06 +0900


初めまして。stormcatと言います。

> この状況の中で、例えばあるユーザのランクを一つ上に上げるにはどのようにするの
> が一番いいでしょうか?複数のユーザが同じランクの番号を持つことは許されませ
> ん。

そうですね。この場合、PHPと言うよりはSQLを含むデータベース側の
問題だと思いますけど。

単純に、現在ユニークキーになっているランク以外に、ユニークになるカラム
(例えば、単純な連番とか)をテーブルに追加してしまえば、いかなる時でも
UPDATE文は以下の1つで済みますよね。

ex1)ユニークキーをrecidとしてテーブルに追加した場合のSQL文
	$sql = "UPDATE テーブル SET ランク=$newrank WHERE recid=1";

で、新規に会員を追加する場合はrecidのMAX値に+1した物をrecidとして
追加するだけですので、シンプルでわかりやすいかと。

もしそれが不可能な場合は、恐らく中川さんが指摘されている方法がベストかと。
トランザクションも含めて、ご検討下さい。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
佐藤 達也 Tatsuya Satoh (stormcat)
Email:stormcat@geocities.co.jp
Thank You.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@