2015-09-03 3 views
-4

Я создаю случайную сгенерированную викторину с 10 вопросами. При создании случайного вопроса все в порядке, но я хочу отобразить также выбор в случайном порядке, то же самое с вопросами.Как случайный выбор в php

Это мой код, что я работаю с:

<?php 
    generate(); 
    function generate(){ 
    include('connection.php'); 
    mysql_select_db('exam'); 
    $result=mysql_query("SELECT * FROM questionaires 
         INNER JOIN choices ON questionaires.q_id=choices.q_id 
         WHERE RAND()<(SELECT ((10/COUNT(*))*10) FROM questionaires) 
         ORDER BY RAND() LIMIT 10"); 
    $c=0; 
    echo "<table border='3' align='center' bordercolor='#CCCCCC'> 
      <tr> 
       <th>Number:</th> 
       <th>Question</th> 
      </tr> 
      "; 

    while($row = mysql_fetch_array($result)){ 
     $c++; 
     echo "<tr>"; 
     echo "<td>" . $c . "</td>"; 
     echo "<td>"; 
     echo $row['question'] . "<br>"; 
     echo "<input type='radio' name='ans'>".$row['choice_a']."</input><br>"; 
     echo "<input type='radio' name='ans'>".$row['choice_b']."</input><br>"; 
     echo "<input type='radio' name='ans'>".$row['choice_c']."</input><br>"; 
     echo "<input type='radio' name='ans'>".$row['choice_d']."</input><br>"; 
     echo "</td>"; 
     echo "</tr>"; 
    //} 
    //} 
    } 
    echo "</table>"; 
    } 
?> 

мало поможет высокую оценку.

+0

Вы можете добавить все вопросы и/или ответы в массиве и использовать 'array_shuffle' метода перетасовать массив. – Patrick2607

+0

даже им, используя разные таблицы для вопросов и вариантов, а также другую таблицу для правильного ответа –

ответ

1

Вы можете изменить скрипт для этого:

echo "<td>"; 
echo $row['question'] . "<br>"; 

$ans=array($row['choice_a'],$row['choice_b'],$row['choice_c'],$row['choice_d']); 
shuffle($ans); 

foreach ($ans as $choice) { 
    echo "<input type='radio' name='ans'>".$choice."</input><br>"; 
} unset($choice); 

echo "</td>"; 
+0

Это очень полезно, спасибо. –

Смежные вопросы