0

私は投票用紙のホステル割り当てシステムを書いています。このシステムは、学生が登録番号を入力するときに番号を割り当てることを想定しています。登録番号--------

送信時:システムは0から300までの一意の値を割り当てる必要があります://これにより、以下のコードを使用するようになりました

$random = rand(0,299);//this assign a unique random number

if($random <= 50){
 echo " you have being allocated a room "
}else{
 echo "No  room is allocated to u"

}

2つの候補が同じ乱数を受け取らないようにするにはどうすればよいですか。

助けを求める戦車

4

2 に答える 2

2

永続化のためにデータベースを使用していない場合、競合の可能性をゼロにすることはほとんどできません。このレコードがデータベース テーブルに入力される場合は、挿入時に mysql カウントを実行する必要があります。入力されたレコードが部屋の数を超えていない場合は、新しいレコードを挿入します。それ以外の場合は、ROM が残っていないというメッセージをユーザーに返します。部屋番号列のmysql自動増加がここで役立ちます

于 2012-08-17T00:25:28.400 に答える
1

データベースを絶対に使用できない場合は、time()関数と乱数を使用してください。

例えば:

$random = time() . rand(0,1000);

これは「1345164397568」のような番号をエコーし​​、2人が同じ番号を取得する確率は1000分の1であり、まったく同じ秒に訪問した場合に限ります。

于 2012-08-17T00:45:16.097 に答える