Jnnbo: Ausgabe in Kategorien zusammenfassen

Beitrag lesen

Moin,

meine Funktion sieht wie folgt aus

function test456($mysqli, $lo) {
$stmt = $mysqli->prepare("SELECT p_id, p_type, p_pkategorie, p_code, p_hersteller, p_serie, p_geraet, p_bezeichnung, p_bild, p_artnr, p_farbe, p_inhalt, p_preis, p_bestand, p_hinweis, p_status 
		FROM web_produkte WHERE p_geraet =? ");
$stmt->bind_param("s", $lo);
$stmt->execute();
$stmt->bind_result($p_id, $p_type, $p_pkategorie, $p_code, $p_hersteller, $p_serie, $p_geraet, $p_bezeichnung, $p_bild, $p_artnr, $p_farbe, $p_inhalt, $p_preis, $p_bestand, $p_hinweis, $p_status);
		$stmt->store_result();
	 	
		if($stmt->num_rows() >  0) {     
			while ($stmt->fetch()){
				$test456[] = array( 
					'p_id' 			=> $p_id,
					'p_type'		=> $p_type,
					'p_pkategorie'		=> $p_pkategorie, 
					'p_code'		=> $p_code,
					'p_hersteller' 		=> $p_hersteller, 
					'p_serie' 		=> $p_serie, 
					'p_geraet' 		=> $p_geraet, 
					'p_bezeichnung' 	=> $p_bezeichnung, 
					'p_bild' 		=> $p_bild, 
					'p_artnr' 		=> $p_artnr, 
					'p_farbe' 		=> $p_farbe, 
					'p_inhalt' 		=> $p_inhalt, 
					'p_preis' 		=> $p_preis,
					'p_bestand'		=> $p_bestand, 
					'p_hinweis'		=> $p_hinweis,
					'p_status'		=> $p_status
				);
			}
			return $test456;
			
			}
	}

Meine Ausgabe so

<?php foreach($test456 as $array){?>
<?php echo htmlspecialchars($array['p_code']); ?>
<?php } ?>

Klappt auch alles wunderbar, nun möchte ich die Ausgabe gerne etwas optimieren und zwar gibt es im Feld "p_pkategorie" Zahlen (Kategorien wie z.B. Toner, Tinte usw.), nach denen ich gerne die Ausgabe Gruppieren möchte, sprich im Feld "p_pkategorie" steht eine 1, dann sollte die Überschrift "1" lauten darunter alle Einträge die zu dieser Kategorie passen, in der gleichen Abfrage kommt vielleicht eine "3" vor, dann soll wieder eine neue Überschrift beginnen und darunter eben alle Artikel die zur Kategorie "3" passen.

Kann ich das mit meiner Funktion erreichen oder muss ich da noch weitere Funktionen erstellen.

akzeptierte Antworten