仅从项目中选择一个项目,如果没有可用项目,则再次选择项目

时间:2016-05-13 14:57:31

标签: php mysql pdo

出于特殊原因,我想每当我创建新的个人资料时,都会从我的 profile_avatars 列表中选择一个唯一随机头像。然后,当所有头像已经链接到一个配置文件一次时它再次启动。这意味着可以将头像链接到多个个人资料。

我使用了两个mySQL表,它们是 profile_infos profile_avatars

这是我的PHP代码到目前为止选择一个随机的头像:

$req_avatar  = $bdd->query('SELECT * FROM profile_avatars ORDER BY RAND() LIMIT 1');
$data_avatar = $req_avatar->fetch();
$rand = $data_avatar['avatar_address'];

1 个答案:

答案 0 :(得分:1)

这应该有效:

个人资料头像表:

profile_avatars
------------------------------------
id | used_on_rotation | url | title |
-------------------------------------
1  |   0               | .. | ..    |
-------------------------------------
2  |   1               | . .| ..    |
-------------------------------------
...

当您注册时,请通过

查找头像
$bdd->query('SELECT * FROM profile_avatars where used_on_rotation = 0 ORDER BY RAND() LIMIT 1');
  1. 如果没有结果 - 这意味着所有的头像已经被使用过一次并且循环可以被重置

    update profile_avatars set used_on_rotation = 0

  2. 然后尝试再次找到头像

    1. 如果您获得$ data_avatar,则运行查询

      update profile_avatars set used_on_rotation = 0 where id = $DATA_AVATAR_ID