-2

我需要使用 php 实现一个问答表单,我需要选择问题以及选项值。以一种方式,选项值应该是随机的。

例如从 Questtable 中选择 quest,option1,option2,option3 ;如何以随机顺序为每个请求获取选项 1、选项 2、选项 3,我们可以使用 mysql 实现任何方式。?

4

4 回答 4

1

您可以使用RAND()

SELECT * FROM table_name ORDER BY RAND() LIMIT 5
于 2012-12-18T13:21:23.083 回答
0

使用 MySQL 查询来执行此操作是不可能的,但您可以使 php 随机化输出。将选项写入一个空数组,然后随机化该数组。

如果你喜欢用 MySQL 做这件事,你必须制作 2 个表,一个包含问题,一个包含答案,每行 1 个答案。

然后你可以这样做:

SELECT option FROM tbl_answers WHERE questionId = X ORDER BY RAND()
于 2012-12-18T13:24:14.310 回答
0

不,只有 mysql 是不可能的

您可以SELECT quest,option1,option2,option3通过 php 进行 a 和 shuffle

于 2012-12-18T13:24:38.553 回答
0

尽管您应该如前所述更改您的表格设计,但您可以尝试这个非常粗略的设计(但粗略的设计会导致粗略的解决方案)

SELECT
  quest,
  CASE rval WHEN 0 THEN option1 WHEN 1 THEN option2 WHEN 2 THEN option3 END option_1,
  CASE rval WHEN 0 THEN option2 WHEN 1 THEN option3 WHEN 2 THEN option1 END option_2,
  CASE rval WHEN 0 THEN option3 WHEN 1 THEN option1 WHEN 2 THEN option2 END option_3
FROM (
SELECT
  *,
  FLOOR( RAND() * 3 ) rval
FROM tbl_answers ) tmp

并且请:“不要在家里这样做!

于 2012-12-18T13:34:40.497 回答