我需要使用 php 实现一个问答表单,我需要选择问题以及选项值。以一种方式,选项值应该是随机的。
例如从 Questtable 中选择 quest,option1,option2,option3 ;如何以随机顺序为每个请求获取选项 1、选项 2、选项 3,我们可以使用 mysql 实现任何方式。?
我需要使用 php 实现一个问答表单,我需要选择问题以及选项值。以一种方式,选项值应该是随机的。
例如从 Questtable 中选择 quest,option1,option2,option3 ;如何以随机顺序为每个请求获取选项 1、选项 2、选项 3,我们可以使用 mysql 实现任何方式。?
您可以使用RAND()
SELECT * FROM table_name ORDER BY RAND() LIMIT 5
使用 MySQL 查询来执行此操作是不可能的,但您可以使 php 随机化输出。将选项写入一个空数组,然后随机化该数组。
如果你喜欢用 MySQL 做这件事,你必须制作 2 个表,一个包含问题,一个包含答案,每行 1 个答案。
然后你可以这样做:
SELECT option FROM tbl_answers WHERE questionId = X ORDER BY RAND()
不,只有 mysql 是不可能的
您可以SELECT quest,option1,option2,option3
通过 php 进行 a 和 shuffle
尽管您应该如前所述更改您的表格设计,但您可以尝试这个非常粗略的设计(但粗略的设计会导致粗略的解决方案)
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
并且请:“不要在家里这样做! ”