Ich wurde damit beauftragt, eine Webanwendung zu erstellen, die den Benutzer nach einer Antwort (Option) auf eine bestimmte Frage fragt - je nachdem, welche Option gewählt wurde. Jede Frage wird zusammen mit den 7 Optionen jeder Frage in einer Datenbank gespeichert. Zum Beispiel: "Was war dein Lieblingsessen, als du jünger warst?" könnte die Optionen haben: Cookies, Kuchen, Torten, etc.PHP - Definieren von Arrays mit Datenbankwerten
Ich habe es tatsächlich geschafft, das Skript zu schreiben, um jeden Wert mit indizierten 1D und 2D-Arrays mit mysqli_fetch_array zu definieren. Wenn ich jedoch versuche, die Daten, die in jeder Frage gespeichert sind, mit for loops zu beantworten, bekomme ich ein seltsames Problem ... Alle Fragen werden angezeigt, aber nur die Antworten der ersten Frage werden angezeigt.
Hier ist mein Code:
<?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>
Wenn mehr Informationen benötigt wird, fragen Sie bitte. Ich habe keine Ahnung, warum nur ein Satz von Antworten angezeigt wird, also würde jede Hilfe geschätzt werden.
Schauen Sie sich diese Aussage, 'print "
" $ am [2] [$ c];', soll es sein 'print "
" $ am [$ i] [$ c];.' –