Hi,
Habe nun schon lange Google bemüht habe aber nichts gefunden. Also:
Ich erstelle derzeit einen Multiple-Choice Test, der Daten aus der SQL Datenbank holt. Soweit alles gut. Nun habe ich Checkboxen gemacht, da es mehrere Antworten pro Frage geben soll.
Diese stehen in einer while-Schleife, wo auch die Antworten herausgeholt werden, da es eine dynamische Anzahl an Antworten gibt:
So. Diese werden per Formular übergeben. Dies funktioniert auch soweit alles. Nur habe ich nun das Problem, wenn ich die erste Checkbox nicht aktiviere, bekomme ich die Fehlermeldung, dass es ein OffSet gibt weil er Feld 0 nicht finden konnte / es leer ist (is ja logisch). Hier mein Code aus der Datei, die die Sachen in die Datenbank einträgt:
Die if-Abfrage mit == 0 bzw. != 0 waren mein letzter Versuch und funktionieren nicht. Ich würde ihn an der Stelle gerne überprüfen lassen, ob das Feld leer ist oder nicht.
Ich hoffe ihr versteht mein Anliegen und könnt mir helfen
Habe nun schon lange Google bemüht habe aber nichts gefunden. Also:
Ich erstelle derzeit einen Multiple-Choice Test, der Daten aus der SQL Datenbank holt. Soweit alles gut. Nun habe ich Checkboxen gemacht, da es mehrere Antworten pro Frage geben soll.
Diese stehen in einer while-Schleife, wo auch die Antworten herausgeholt werden, da es eine dynamische Anzahl an Antworten gibt:
PHP-Code:
while($id < $count_antworten){
$antwort_id_query = "SELECT a.antwort_id FROM antworten a, fra_ant fa
WHERE fa.frage_id = '$frage_id' AND fa.antwort_id = a.antwort_id";
$antwort_id_sql = mysql_query($antwort_id_query);
$antworten_query = "SELECT antwort FROM antworten a, fra_ant fa
WHERE fa.frage_id = '$frage_id' AND fa.antwort_id = a.antwort_id";
$antworten_sql = mysql_query($antworten_query);
$antworten = mysql_result($antworten_sql,$id); //antwort auslesen
$antwort_id = mysql_result($antwort_id_sql,$a_id); //antwort_id auslesen
echo "<table border=\"0\"><tr valign=top><td align=left width=50><p>
<input type = \"checkbox\" name = 'antwort[".$a."]'
value = '$antwort_id'> ".$nr.".</td><td align=left> ".$antworten."</td>
</tr></table></option></p>";
$id++; // hochzählen für Schleife
$nr++; // hochzählen für Ausgabe
$a_id++; // hochzählen für Auswahl der antwort_id
$a++;
}
PHP-Code:
if(ISSET($_POST["antwort"])){
$counter_a = 0;
$anzahl_boxen = count( $_POST["antwort"] );
while($counter_a < $count_antworten){
if($_POST["antwort"][$counter_a] == 0){
$counter_a++;
}
if($_POST["antwort"][$counter_a] != 0){
$antwort_id = $_POST["antwort"][$a];
echo $antwort_id;
$fa_id_query = "SELECT fa_id FROM fra_ant fa
WHERE '$frage_id' = fa.frage_id AND '$antwort_id' = fa.antwort_id";
$fa_id_sql = mysql_query($fa_id_query);
$fa_id = mysql_result($fa_id_sql,0);
$eintragen_query = "INSERT INTO auswahl VALUES ('','$fa_id','','$frage_nr','')";
$eintragen_sql = mysql_query($eintragen_query); // eintragen der Auswahl in DB
Antwort
$a++;
$counter_a++;
}
}
}
Ich hoffe ihr versteht mein Anliegen und könnt mir helfen
Kommentar