Мне было поручено создать веб-приложение, которое запрашивает у пользователя ответ (вариант) на конкретный вопрос - выполнение различных действий в зависимости от выбранной опции. Каждый вопрос хранится в базе данных вместе с 7 вариантами каждого вопроса. Например, «какая была ваша любимая еда, когда вы были моложе?» могли бы иметь варианты: Cookies, торты, торты и т. д.PHP - определяющие массивы с значениями базы данных
Мне действительно удалось написать сценарий, чтобы определить каждое значение, используя массивы с 1D и 2D индексированными массивами, используя mysqli_fetch_array. Однако, когда я пытаюсь просмотреть данные, хранящиеся в каждом массиве вопросов и ответов, используя для циклов, я получаю странную проблему ... Все вопросы отображаются, но отображаются только ответы на первый вопрос.
Вот мой код:
<?php
session_start();
$con = mysqli_connect("server","username","password","db");
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$arr = array();
$ans = array();
$i = 0;
$c = 0;
$q_sql = "SELECT Question FROM Question";
$question = mysqli_query($con,$q_sql);
while($q = mysqli_fetch_array($question)){
$arr[$i] = $q['Question'];
$a_sql = "SELECT Answer FROM Answer WHERE QuestionID = ".($i+1);
$answer = mysqli_query($con,$a_sql);
while($a = mysqli_fetch_array($answer)){
$ans[$i][$c] = $a['Answer']; // array(0 => $i, 1 => $a);
$c++;
}
$i++;
}
mysqli_close($con);
?>
HTML:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<?php
for ($i=0; $i < sizeof($arr); $i++){
print "<br/>".$arr[$i];
for ($c=0; $c < sizeof($ans[$i]); $c++){
print "<br/>".$ans[2][$c];
}
}
?>
</body>
</html>
Если больше информации необходимо, пожалуйста, спрашивайте. Я понятия не имею, почему отображается только один набор ответов, поэтому любая помощь будет оценена.
Посмотрите на это заявление, 'печать "
" $ анс [2] [$ с];', он должен быть 'печать "
" $ анс [$ я] [$ с];. ' –