php随机访问

php随机访问,php,ms-access,Php,Ms Access,我正在使用带有Access数据库的PHP。此代码工作正常,并显示34个问题。我想随机化问题的显示顺序,但RAND()函数不适用于Access。我想洗牌数组,但无法获得正确的语法。任何帮助都将不胜感激 $info2 = "SELECT * FROM CCNAATQuestions"; $rs2=odbc_exec($conn1, $info2); while ($row = odbc_fetch_array($rs2)) { echo "<strong>" . $row["

我正在使用带有Access数据库的PHP。此代码工作正常,并显示34个问题。我想随机化问题的显示顺序,但
RAND()
函数不适用于Access。我想洗牌数组,但无法获得正确的语法。任何帮助都将不胜感激

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

while ($row = odbc_fetch_array($rs2)) {

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

}
$info2=“从CCNAATQuestions中选择*”;
$rs2=odbc_exec($conn1,$info2);
而($row=odbc\u fetch\u数组($rs2)){
回声“”$row[“问题”]。“”;
}
$rows=array();
而($row=odbc\u fetch\u数组($rs2)){
$rows[]=“”$row[“问题”]。“”;
}
洗牌(行);
$rows=array();
而($row=odbc\u fetch\u数组($rs2)){
$rows[]=“”$row[“问题”]。“”;
}
洗牌(行);
尝试上面的方法,其中id=主键列


请尝试上面的方法,其中id=主键列

您必须先获取所有行,然后才能将它们洗牌:

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

shuffle($rows);
foreach ($rows as $row) {
    echo "<strong>" . $row["Question"] . "</strong>";
}
$rows=array();
而($row=odbc\u fetch\u数组($rs2)){
$rows[]=$row;
}
洗牌(行);
foreach($行作为$行){
回声“”$row[“问题”]。“”;
}

您应该看看@Dave的解决方案,因为它将使用ACCESS功能。很遗憾,我无法测试它,因为我手边没有Windows系统

您必须先获取所有行,然后才能对它们进行洗牌:

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

shuffle($rows);
foreach ($rows as $row) {
    echo "<strong>" . $row["Question"] . "</strong>";
}
$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>";
}
$rows=array();
而($row=odbc\u fetch\u数组($rs2)){
$rows[]=$row;
}
洗牌(行);
foreach($行作为$行){
回声“”$row[“问题”]。“”;
}
您应该看看@Dave的解决方案,因为它将使用ACCESS功能。很遗憾,我无法测试它,因为我手头没有Windows系统;
$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>";
}
$rs2=odbc_exec($conn1,$info2); $questions=array(); 而($row=odbc\u fetch\u数组($rs2)) { $questions[]=$row; } 洗牌(问题); foreach($行的问题) { 回声“”$row['Question']。“”; } 使用PHP中的shuffle:

$info2=“从CCNAATQuestions中选择*”;
$rs2=odbc_exec($conn1,$info2);
$questions=array();
而($row=odbc\u fetch\u数组($rs2))
{
$questions[]=$row;
}
洗牌(问题);
foreach($行的问题)
{
回声“”$row['Question']。“”;
}

在Access中使用PHP:

中的shuffle,函数是Rnd()而不是RAND()。请参见下面Dave的答案。在Access中,函数是Rnd()而不是RAND()。请参阅下面Dave的答案。@James You's welcome,如果您对接受的答案感到满意,我将感谢您单击该答案。@James You's welcome,如果您对接受的答案感到满意,我将感谢您单击该答案。