Hallo,
ich bin noch ganz am Anfang was meine PHP Kenntnisse angeht. Deshalb habe ich eine Frage an euch und hoffe dass wir zusammen mein Problem gelöst bekommen, sollte dieses überhaupt so zu lösen sein.
Ausgangspunkt ist die Funktion Uebersicht die sorgt dafür dass ich zu einem bestimmten Thema alle Artikel angezeigt bekomme, klappt auch.
Die Abfrage in meiner artikel.php sieht so aus
Das HTML habe ich gekürzt, da dieses erstmal nichts mit meinem Problem zu tun hat. Jetzt möchte ich gerne meine Artikel gruppieren. Im Feld artikel_pkategorie steht eine Zahl z.B. eine 1 für Büro eine 2 für Schule. Die Ausgabe sollte anschließend folgendermaßen ausgegeben werden:
Titel: Büro
Titel: Schule
Ist dieses mit einer Abfrage möglich oder muss ich erst alle Kategorien auslesen und in der jeweiligen Kategorie eine Funktion starten, die genau diese Artikel ausließt (das wäre meine Idee, was vielleicht viel Datenbank-Trafik wäre). Ich hoffe ich konnte es so rüberbringen, dass es jeder versteht.
ich bin noch ganz am Anfang was meine PHP Kenntnisse angeht. Deshalb habe ich eine Frage an euch und hoffe dass wir zusammen mein Problem gelöst bekommen, sollte dieses überhaupt so zu lösen sein.
Ausgangspunkt ist die Funktion Uebersicht die sorgt dafür dass ich zu einem bestimmten Thema alle Artikel angezeigt bekomme, klappt auch.
PHP-Code:
function Uebersicht($mysqli, $id) {
$stmt = $mysqli->prepare("SELECT artikel_id,
artikel_type,
artikel_pkategorie,
artikel_hersteller,
artikel_was,
artikel_bezeichnung,
artikel_bild,
artikel_farbe,
artikel_preis,
artikel_status,
artikel_produkt_url,
farbe_id,
farbe_titel,
farbe_grafik
FROM produkte
LEFT JOIN produkte_farben ON produkte_farben.farbe_id = produkte.artikel_farbe
WHERE artikel_was = ? ");
$stmt->bind_param("s", $id);
$stmt->execute();
$stmt->bind_result($artikel_id,
$artikel_type,
$artikel_pkategorie,
$artikel_hersteller,
$artikel_was,
$artikel_bezeichnung,
$artikel_bild,
$artikel_farbe,
$artikel_preis,
$artikel_status,
$artikel_produkt_url,
$farbe_id,
$farbe_titel,
$farbe_grafik
);
$stmt->store_result();
if($stmt->num_rows() > 0) {
while ($stmt->fetch()){
$Uebersicht[] = array(
'artikel_id' => $artikel_id,
'artikel_type' => $artikel_type,
'artikel_pkategorie' => $artikel_pkategorie,
'artikel_hersteller' => $artikel_hersteller,
'artikel_was' => $artikel_was,
'artikel_bezeichnung' => $artikel_bezeichnung,
'artikel_bild' => $artikel_bild,
'artikel_farbe' => $artikel_farbe,
'artikel_preis' => $artikel_preis,
'artikel_status' => $artikel_status,
'artikel_produkt_url' => $artikel_produkt_url,
'farbe_id' => $farbe_id,
'farbe_titel' => $farbe_titel,
'farbe_grafik' => $farbe_grafik
);
}
return $Uebersicht;
}
}
Die Abfrage in meiner artikel.php sieht so aus
PHP-Code:
<?php
$Uebersicht = Uebersicht($mysqli, $Detail->id);
foreach($Uebersicht as $array){
?>
<div class="Box">
<h3><?php echo htmlspecialchars($array['artikel_bezeichnung']); ?></h3>
<?php if ($array['artikel_bild'] > 0): ?>
<img src="<?php echo htmlspecialchars($array['artikel_bild']); ?>" alt="Produktbild für: <?php echo htmlspecialchars($array['artikel_bezeichnung']); ?>">
<?php endif; ?>
</dir>
<?php if ($array['artikel_farbe'] > ""): ?>
<li><span>Farbe:</span> <?php echo htmlspecialchars($array['artikel_farbe']); ?></li>
<?php endif; ?>
<?php
}
?>
Titel: Büro
- Artikel 1
- Artikel 2
- Artikel 3
- usw…
Titel: Schule
- Artikel 1
- Artikel 2
- Artikel 3
- usw…
Ist dieses mit einer Abfrage möglich oder muss ich erst alle Kategorien auslesen und in der jeweiligen Kategorie eine Funktion starten, die genau diese Artikel ausließt (das wäre meine Idee, was vielleicht viel Datenbank-Trafik wäre). Ich hoffe ich konnte es so rüberbringen, dass es jeder versteht.

Kommentar