简单的while循环数据库搜索表

时间:2015-02-07 14:09:43

标签: loops if-statement random while-loop

首先:感谢我通过寻找其他人发布的问题的答案而获得的所有帮助。

我有一个小而简单的问题:

我正在尝试随机生成一个数字,但如果它存在于数据库表中,它应该继续生成一个新数字,直到它找到一个唯一的数字。

非常感谢帮助!

    $klantnr = rand(1,9);

    $kn = mysql_num_rows(mysql_query('select username from users where id="'.$klantnr.'"'));

    while($kn!=0){
       $klantnr = rand(1,9);
      }                                   
echo $klantnr;

1 个答案:

答案 0 :(得分:0)

创建表格:

id integer primary key auto_increment
insert into users (id, username) values (NULL, 'name')
insert into users (username) values ('name')

MySQL将为您生成唯一ID

=== update

create table random_id (
    id integer,
    used tinyint,
    primary key(id),
    key idx_used(used)
);

for (0..9999) {
    rand_id = get_random_id();
    insert into random_id (id, used) values (rand_id, 0);
}

当需要随机ID时,只需从random_id表中获取一个:

rand_id = select id from random_id where used = 0;
update random_id set used = 1 where id = :rand_id

use rand_id

实际上它是预先生成的随机ID,如果你只保证来自随机表的用户表的id,你就不需要处理冲突ID:)

相关问题