从数组中返回随机化的mysql函数?

时间:2012-04-13 12:01:57

标签: mysql arrays random

所以我想创建一个脚本,其中大约有十个mysql函数可以为用户提供不同的项目,每当用户点击页面时,其中一个函数会随机执行。 这是我需要的RPG功能,根据用户的狩猎水平,它们更成功,但不会总是得到食物。所以他们点击页面,从一个项目数组中,随机返回一个项目,并通过mysql_query为它们提供该项目。

我希望这是有道理的,如果没有,请告诉我......

到目前为止,我已经有了这些起点

$input = array("value 1", "value 2", "value 3", "value 4", "value 5");
 $rand_keys = array_rand($input, 1);
 echo $input[$rand_keys[0]] . "\n";

我不知道这是否会允许数组中的mysql查询。 我也考虑过使用重定向的东西,但是我试过的那个仍然重定向,这不是我想要的,并且网址可以被篡改以获得良好的结果......

无论如何,我希望这是有道理的,任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:1)

我会通过一个包含项目及其值的表来解决这个挑战。其中一列是prio_drop。如果您希望更频繁地删除某个项目,则其值为2,而其他项目的值为1。价值越高,机会就越大。

然后我会做:

$arr_items = array(1, 2, 3, 5); /* This event can drop items with these ids */
$str_items = implode(', ', $arr_items);

mysql_query("
SELECT id, name
FROM items
WHERE id IN ({$str_items})
ORDER BY (RAND() * prio_drop) DESC
LIMIT 1
");

希望我理解正确吗?