теги php внутри выражения echo

#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