Antworten auf deine Fragen:
Neues Thema erstellen

foreach produziert fehlerhafte Ausgabe

owieortho

Aktives Mitglied

Hallo,

ich habe ein Skript, welches zwei MySQL-Tabellen abfragt. Tabelle 1 enthält Fragen, Tabelle 2 die Antworten. Ziel ist es die jeweilige Frage als Überschrift darzustellen und darunter als Liste die dazu gegebenen Antworten. Da diese Abfrage über mehrere Frage-Antwort-Kombinationen immer die gleiche ist, wollte ich das zusammenfassen:
PHP:
$c_id = 12345;
$frage = array("q1","q5"); # Die abzufragenden Fragen, die Nummerierung muss nicht durchgehend sein.

foreach ($frage AS $q) {
$sql = "SELECT `de` FROM fragen WHERE `frage`= '". $q ."'";
$query = mysql_query ($sql);
$result = mysql_fetch_row ($query);

echo "<h3>". $result[0] ."</h3>\n<ul>\n"; # Stellt die im array frage angegebenen Fragen als Überschrift dar.

$sql2 = "SELECT `". $q ."` FROM antworten WHERE `void` = 1 AND `c_id` = ". $c_id ."";
$query2 = mysql_query ($sql2);
while ($results2 = mysql_fetch_array ($query2))
$reply[] = $results2;

foreach ($reply AS $r) {
if (empty ($r[0])) {
echo ""; # für den Fall, dass einmal keine Antwort gegeben wurde.
} else {
    echo "<li>". $r[0] ."</li>\n";
}
}
echo "</ul>";
}
Mit den Überschriften klappt es prima, auch mit der ersten Liste. Jedoch bei der zweiten Liste werden mir die Antworten zur ersten Frage und danach die eigentlich gewünschten Antworten zur zweite Frage aufgelistet:
Frage 1
  • Antwort A
  • Antwort B
  • Antwort C
Frage 2
  • Antwort A
  • Antwort B
  • Antwort C
  • Antwort a
  • Antwort b
  • Antwort c
Ich finde einfach nicht, wo ich den Fehler reingebaut habe, bzw. welchem Denkfehler ich aufsitze.

Vielen Dank fürs Drüberschauen und etwaige Tipps und Hilfestellungen.
O.
 
Zuletzt bearbeitet:

Ich glaube manchmal muss man hier nur etwas posten, um dann von selbst auf die Antwort zu kommen:

Ich muss das array nach jeder Runde auch wieder leeren, also vor der letzten geschweiften Klammer:
PHP:
$reply = array();
Danach gings.... wie war das mit dem Wald und den Bäumen?

Allen einen schönen Tag
O.
 
:-) hab sowas mal als stored procedure abgebildet (MS-SQL). falls es dich interessiert kann ich es ja suchen. vielleicht finde ich es ja irgendwo
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.990
Beiträge
1.540.245
Mitglieder
68.200
Neuestes Mitglied
ElKaracho
Oben