Ausgabeproblem aus Datenbankabfrage
Hallo liebe PHP'ler,
ich sehe so langsam vor lauter Bäumen den Wald nicht mehr. Ich habe ein ganz einfaches Formular, mit dem ich Datensätze Schritt-für-Schritt von der Datenbank abfrage.
Auf der letzten Seite angekommen, sollen die Optionen von Produkten angezeigt werden. Dies funktioniert auch soweit richtig, aber NUR, wenn ich es nur für EIN Produkt anfordere. Wird es mehr, ist die Ausgabe nicht mehr richtig. Mittlerweile habe ich auch festgestellt, dass es an den Foreach-Schleifen liegt. Wie kann ich es denn anders Programmierne, dass die Ausgabe richtig erfolgt?
Hier der Auszug aus dem Code:
Zur Veranschaulichung hier die Ausgabe:
Über einen Tipp wäre ich euch dankbar, ist sicherlich einfacher als man sich das Ganze vorstellt.
Gruß, Lucky.
ich sehe so langsam vor lauter Bäumen den Wald nicht mehr. Ich habe ein ganz einfaches Formular, mit dem ich Datensätze Schritt-für-Schritt von der Datenbank abfrage.
Auf der letzten Seite angekommen, sollen die Optionen von Produkten angezeigt werden. Dies funktioniert auch soweit richtig, aber NUR, wenn ich es nur für EIN Produkt anfordere. Wird es mehr, ist die Ausgabe nicht mehr richtig. Mittlerweile habe ich auch festgestellt, dass es an den Foreach-Schleifen liegt. Wie kann ich es denn anders Programmierne, dass die Ausgabe richtig erfolgt?
Hier der Auszug aus dem Code:
foreach ($_POST['prdkindzu'] as $kindid => $prdkindid)
{
foreach ($prdkindid as $zusatzid => $prdkind_name)
{
$kindopt=mysql_db_query("edv_produktdatenbank",
"SELECT PRDKINDOPT.prdgrp_id, PRDKINDOPT.prdfam_id, PRDKINDOPT.prdkind_id, PRDKINDOPT.prdkindzusatz_id, PRDKINDOPT.prdkind_option_id, PRDKINDOPT.prdkind_option
FROM edv_produktkind_option PRDKINDOPT
WHERE PRDKINDOPT.prdkind_id = $kindid
AND PRDKINDOPT.prdkindzusatz_id = $zusatzid
ORDER BY PRDKINDOPT.prdkind_option ASC");
while($row_kindopt=mysql_fetch_array($kindopt,MYSQL_NUM))
{
$kindopt_grpid = $row_kindopt;
$kindopt_famid = $row_kindopt[1];
$kindopt_kindid = $row_kindopt[2];
$kindopt_kindzuid = $row_kindopt[3];
$kindopt_kindoptid = $row_kindopt[4];
$kindopt_kindoption = $row_kindopt[5];
}
}
}
echo'
<p class="Stil4"><u>3. Schritt: Produkt-Option auswählen</u></p>
<form method="POST" action="04_auswahl_anzeigen.php" />
<table border="0" width="600" class="Stil3">';
foreach ($_POST['prdkindzu'] as $kindid => $prdkindid)
{
foreach ($prdkindid as $zusatzid => $prdkind_name)
{
echo'
<tr>
<td class="Stil4">'.$prdkind_name.'</td>
</tr>';
for($i=0;$i<count($kindopt_kindoption);$i++)
{
echo '
<tr>
<td class="Stil4"><input type="checkbox" name="prdkindopt['.$kindopt_kindoptid[$i].']" value="'.$kindopt_kindoptid[$i].'">'.$kindopt_kindoption[$i].'</td>
</tr>';
}
}
}
echo'
</table>
<input type="submit" value="Auswahl anzeigen" />
</form>';
?>
Zur Veranschaulichung hier die Ausgabe:
Über einen Tipp wäre ich euch dankbar, ist sicherlich einfacher als man sich das Ganze vorstellt.
Gruß, Lucky.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 102682
Url: https://administrator.de/contentid/102682
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
1 Kommentar
In Zeile 20 befüllst du ja das Array mit den Optionen immer und immer weiter.
Ab Zeile 37 lässt du alle Elemente des Arrays wieder ausgeben. (Dieses enthält mittlerweile natürlich die Optionen beider Kinder weil das Array ja einfach nur befüllt wird, weiter und immer weiter)
Lass dir nach dem Auslesen und vor dem Ausgeben die Inhalte aus deinen Arrays ausgeben (print_r(),var_pump())
Mein Vorschlag wäre ein anderes Arraydesign:So hast du alle Daten separat, jeweils in einem eigenem Array gespeichert.
Ob man es auch so bei dir machen kann weiss ich nicht, blike nicht ganz durch dein Skript...
Schönes Wochenende
Arano
Ab Zeile 37 lässt du alle Elemente des Arrays wieder ausgeben. (Dieses enthält mittlerweile natürlich die Optionen beider Kinder weil das Array ja einfach nur befüllt wird, weiter und immer weiter)
Lass dir nach dem Auslesen und vor dem Ausgeben die Inhalte aus deinen Arrays ausgeben (print_r(),var_pump())
Mein Vorschlag wäre ein anderes Arraydesign:
$kinder=array(
0=array(
'group_id'=>,
'famili_id'=>,
'kind_id'=>,
'zu_id'=>,
'option_id'=>,
'options'=>array(
0=>'Option 12',
1=>'Option 23',
2=>'Option 52',
3=>'Option 53'
),
1=array(
'group_id'=>,
'famili_id'=>,
'kind_id'=>,
'zu_id'=>,
'option_id'=>,
'options'=>array(
0=>'Option 12',
1=>'Option 23',
2=>'Option 52',
3=>'Option 53'
)
);
Ob man es auch so bei dir machen kann weiss ich nicht, blike nicht ganz durch dein Skript...
Schönes Wochenende
Arano