Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Ausgabeproblem aus Datenbankabfrage

Frage Entwicklung PHP

Mitglied: LuckyLuke

LuckyLuke (Level 1) - Jetzt verbinden

25.11.2008, aktualisiert 29.11.2008, 2287 Aufrufe, 1 Kommentar

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:
01.
  
02.
foreach ($_POST['prdkindzu'] as $kindid => $prdkindid)  
03.
04.
	foreach ($prdkindid as $zusatzid => $prdkind_name)  
05.
	{	 
06.
		$kindopt=mysql_db_query("edv_produktdatenbank",  
07.
		"SELECT PRDKINDOPT.prdgrp_id, PRDKINDOPT.prdfam_id, PRDKINDOPT.prdkind_id, PRDKINDOPT.prdkindzusatz_id, PRDKINDOPT.prdkind_option_id, PRDKINDOPT.prdkind_option 
08.
		FROM edv_produktkind_option PRDKINDOPT 
09.
			WHERE PRDKINDOPT.prdkind_id = $kindid 
10.
			  AND PRDKINDOPT.prdkindzusatz_id = $zusatzid 
11.
			ORDER BY PRDKINDOPT.prdkind_option ASC"); 
12.
	 
13.
		while($row_kindopt=mysql_fetch_array($kindopt,MYSQL_NUM))  
14.
15.
			$kindopt_grpid[]	  = $row_kindopt[0]; 
16.
			$kindopt_famid[]	  = $row_kindopt[1]; 
17.
			$kindopt_kindid[]     = $row_kindopt[2]; 
18.
			$kindopt_kindzuid[]   = $row_kindopt[3]; 
19.
			$kindopt_kindoptid[]  = $row_kindopt[4]; 
20.
			$kindopt_kindoption[] = $row_kindopt[5]; 
21.
22.
23.
}	 
24.
 
25.
echo'  
26.
<p class="Stil4"><u>3. Schritt: Produkt-Option auswählen</u></p> 
27.
<form method="POST" action="04_auswahl_anzeigen.php" /> 
28.
<table border="0" width="600" class="Stil3">'; 
29.
foreach ($_POST['prdkindzu'] as $kindid => $prdkindid)  
30.
31.
	foreach ($prdkindid as $zusatzid => $prdkind_name)  
32.
	{	 
33.
		echo
34.
		<tr> 
35.
		<td class="Stil4">'.$prdkind_name.'</td> 
36.
		</tr>'; 
37.
		for($i=0;$i<count($kindopt_kindoption);$i++) 
38.
39.
			echo
40.
			<tr> 
41.
			<td class="Stil4"><input type="checkbox" name="prdkindopt['.$kindopt_kindoptid[$i].']" value="'.$kindopt_kindoptid[$i].'">'.$kindopt_kindoption[$i].'</td> 
42.
			</tr>'; 
43.
		}	 
44.
45.
46.
echo
47.
</table> 
48.
<input type="submit" value="Auswahl anzeigen" /> 
49.
</form>'; 
50.
?>
Zur Veranschaulichung hier die Ausgabe:
3c7ce5cbc1619eab866a05a27777a511-problem - Klicke auf das Bild, um es zu vergrößern

Über einen Tipp wäre ich euch dankbar, ist sicherlich einfacher als man sich das Ganze vorstellt.


Gruß, Lucky.
Mitglied: Arano
29.11.2008 um 14:58 Uhr
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:
01.
$kinder=array
02.
 0=array
03.
  'group_id'=>, 
04.
  'famili_id'=>, 
05.
  'kind_id'=>, 
06.
  'zu_id'=>, 
07.
  'option_id'=>, 
08.
  'options'=>array
09.
   0=>'Option 12'
10.
   1=>'Option 23'
11.
   2=>'Option 52'
12.
   3=>'Option 53' 
13.
  ), 
14.
 1=array
15.
  'group_id'=>, 
16.
  'famili_id'=>, 
17.
  'kind_id'=>, 
18.
  'zu_id'=>, 
19.
  'option_id'=>, 
20.
  'options'=>array
21.
   0=>'Option 12'
22.
   1=>'Option 23'
23.
   2=>'Option 52'
24.
   3=>'Option 53' 
25.
26.
);
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
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Datenbankabfrage Powershell (3)

Frage von internet2107 zum Thema Batch & Shell ...

Datenbanken
gelöst Fehler 1064 you have an error in SQL syntax datenbankabfrage, Search and Replace (1)

Frage von Blackshirt zum Thema Datenbanken ...

PHP
gelöst PHP - unique-array() und sort() (14)

Frage von ThomasXYZ zum Thema PHP ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
gelöst Leiten "dumme" Switches VLAN-Tags mit durch? (26)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (17)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Windows Server
DC virtualisieren + wie sichern (SingleDC-Environment) (12)

Frage von KMUlife zum Thema Windows Server ...