php随机访问

Posted

技术标签:

【中文标题】php随机访问【英文标题】:php shuffle access 【发布时间】:2013-04-10 13:55:54 【问题描述】:

我正在使用 php 和 Access 数据库。此代码运行良好,并显示 34 个问题。我想随机化问题的显示顺序,但 RAND() 函数不适用于 Access。我想对数组进行洗牌,但无法正确使用语法。任何帮助将不胜感激。

$info2 = "SELECT * FROM CCNAATQuestions";
$rs2=odbc_exec($conn1, $info2);

while ($row = odbc_fetch_array($rs2)) 

    echo "<strong>" . $row["Question"] . "</strong>";


【问题讨论】:

在 Access 中,函数是 Rnd() 而不是 RAND()。请参阅下面戴夫的回答。 【参考方案1】:
SELECT * FROM [tableName] ORDER BY rnd(INT(NOW*id)-NOW*id)

尝试上述方法,其中 id = 您的主键列

【讨论】:

@James 不客气,如果你对它感到满意,我会很感激你点击接受的答案。【参考方案2】:
$rows = array();
while ($row = odbc_fetch_array($rs2)) 

$rows[]="<strong>" . $row["Question"] . "</strong>";



shuffle($rows);

【讨论】:

【参考方案3】:
$info2 = "SELECT * FROM CCNAATQuestions";
$rs2=odbc_exec($conn1, $info2);

$questions = array();

while ($row = odbc_fetch_array($rs2))

    $questions[] = $row;


shuffle($questions);

foreach ($questions as $row)

    echo "<strong>" . $row['Question'] . "</strong>";

使用 PHP 中的随机播放:http://php.net/manual/en/function.shuffle.php

【讨论】:

【参考方案4】:

您必须先获取所有行,然后才能对其进行随机播放:

$rows = array();
while ($row = odbc_fetch_array($rs2)) 
    $rows[]= $row;


shuffle($rows);
foreach ($rows as $row) 
    echo "<strong>" . $row["Question"] . "</strong>";

您应该看看@Dave 的解决方案,因为它将使用访问功能。不幸的是,我无法测试它,因为我手头没有 Windows 系统

【讨论】:

以上是关于php随机访问的主要内容,如果未能解决你的问题,请参考以下文章

微信域名检测,PHP随机获取微信能正常访问的域名

J2ME 中的文件随机访问

一个PHP程序,同一时刻被请求多次,怎么让它只运行一次?

为啥我使用 PHP 的 $_SERVER 变量得到一个随机字符串作为 IP 地址?

用于通过PHP访问Youtube的Google API密钥

PHP 中的安全随机数生成