#php #html #mysql
#php #HTML #mysql
Вопрос:
Я создаю тест с несколькими вариантами ответов, в котором я буду отображать только 1 вопрос на странице, где варианты ответов перемешиваются для отображения пользователю.
<?php
$con = mysqli_connect("localhost","root","","labquiz");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$res = mysql_query("SELECT multiplechoiceid, question, choice1, choice2, choice3, answer, description FROM multiple_choice");
$ans_array = array('choice1', 'choice2', 'choice3', 'answer');
shuffle($ans_array);
while($row = mysql_fetch_array($res)){
echo $row["multiplechoiceid"]. ".". $row["question"];
echo "<br>";
echo '<input type="radio" name="quizid<?=$row->multiplechoiceid?>" value="$ans_array[0]" required> <?=$ans_array[0]?>';
echo "<br>";
echo '<input type="radio" name="quizid<?=$row->multiplechoiceid?>" value="<?=$ans_array[1]?>"> <?=$ans_array[1]?>';
echo "<br>";
echo '<input type="radio" name="quizid<?=$row->multiplechoiceid?>" value="<?=$ans_array[2]?>"> <?=$ans_array[2]?>';
echo "<br>";
echo '<input type="radio" name="quizid<?=$row->multiplechoiceid?>" value="<?=$ans_array[3]?>"> <?=$ans_array[3]?>';
echo "<br>";
}
?>
Теги php в выражениях echo не отображают варианты ответов, а отображаются только переключатели.
Комментарии:
1. в вашем посте есть две вещи: 1. mysqli и 2.mysql. Рекомендую использовать
mysqli
илиpdo
.2. Вы не можете написать в echo что-то вроде name=»quizid<?=$row->multiplechoiceid?>». вы должны объединить переменную php, например name=»quizid’.$row->multiplechoiceid.'»
Ответ №1:
почему бы не разделить ваш php и html-код и написать так —
while($row = mysql_fetch_array($res)){
echo $row["multiplechoiceid"]. ".". $row["question"]; ?>
<br>
<input type="radio" name="quizid<?=$row->multiplechoiceid?>" value="$ans_array[0]" required> <?=$ans_array[0]?>
<br>
<input type="radio" name="quizid<?=$row->multiplechoiceid?>" value="<?=$ans_array[1]?>"> <?=$ans_array[1]?>
<br>
<input type="radio" name="quizid<?=$row->multiplechoiceid?>" value="<?=$ans_array[2]?>"> <?=$ans_array[2]?>
<br>
<input type="radio" name="quizid<?=$row->multiplechoiceid?>" value="<?=$ans_array[3]?>"> <?=$ans_array[3]?>
<br>
<?php } ?>
Если проблема все еще возникает, проверьте, включен ли короткий код в вашем файле php.ini