Я проектирую тест, где я хочу отображать вопросы случайным образом. У меня 50 вопросов в базе данных. Для этого я написал следующий код:Показать случайные вопросы
$singleSQL = mysql_query("SELECT * FROM questions WHERE id='$question' ORDER BY Rand()");
while($row = mysql_fetch_array($singleSQL)){
$id = $row['id'];
$thisQuestion = $row['question'];
$type = $row['type'];
$question_id = $row['question_id'];
$q = '<h2>'.$thisQuestion.'</h2>';
$sql2 = mysql_query("SELECT * FROM answers WHERE question_id='$question' ORDER BY rand()");
while($row2 = mysql_fetch_array($sql2)){
$answer = $row2['answer'];
$correct = $row2['correct'];
$answers .= '<label style="cursor:pointer;"><input type="radio" name="rads" value="'.$correct.'">'.$answer.'</label>
<input type="hidden" id="qid" value="'.$id.'" name="qid"><br /><br />
';
}
$output = ''.$q.','.$answers.',<span id="btnSpan"><button onclick="post_answer()">Submit</button></span>';
echo $output;
}
Эта функция Rand() в первой строке не работает на вопросы, но та же функция работает для ответов (варианты MCQs появляется случайным образом). Кроме того, когда я делаю изменения в SQL запроса в первой строке я получаю ошибку:
Предупреждение:
mysql_fetch_array() expects parameter 1 to be resource
boolean given in C:\xampp\htdocs\questions.php on line 36
undefined.
Я не знаю, что это не так !! Pls помогите мне вне !!
'$ singleSQL = mysql_query ("SELECT * FROM вопросы ORDER BY RAND()");' Этого недостаточно для случайного выбора вопросов.? – arunrc
Не используйте API 'mysql_ *'. Это устарело. Используйте «mysqli_ *» ord pdo с подготовленными инструкциями. Где вы подключаетесь к базе данных? Какая строка - строка 36? – Jens
Поместите 'или die (mysql_error())' после 'mysql_query()', чтобы вы увидели сообщение об ошибке SQL. – Barmar