Hallo liebe Community,
ich bin sehr neu in dem Bereich und brauche etwas Hilfe bei einer Abfrage.
Es ist ein Onlineshop und ich möchte gerne eine Tabelle erstellen,
die ausgibt, welche Kunden einen bestimmten Artikel gekauft haben.
Die Artikel haben teils mehrere Varianten. Max. 3.
In dem Beispiel sind es nur 2.
Größe und Farbe
Und ich möchte den Artikel RV MANUELA abfragen.
Wenn ich nun die Abfrage mache,
erstellt es mir immer eine neue Zeile für dieselbe Bestellung, da der Artikel aus zwei Varianten besteht.
Ich würde gerne diese beiden Werte in einer Zeile und einer Zelle hintereinander stehen haben.
Als Beispiel in der ersten Zeile könnte auch T und U zusammengefasst werden:
Als Beispiel wie im Bild : "Größen: 98 - 104 (0), Farbe: kingfisher" oder ähnlich.
Ich habe das mal exemplarisch manuell in der Excel angepasst.
Normal steht in der Tabelle an T2 nur Größen.

Die zwei Werte für die Variante werden hier gezogen:
orders_products_properties.properties_name,
orders_products_properties.values_name,
Auf dem angehängten Bild sieht man, wie immer zwei Zeilen erzeugt werden.
Für jegliche Hilfe bin ich sehr dankbar.
Beste Grüße,
Marko
MySQL-Version: 10.11.4-MariaDB-1--10.11.4+maria~deb11-log
PHP Version 8.2.23
Dies wäre mein Script:
ich bin sehr neu in dem Bereich und brauche etwas Hilfe bei einer Abfrage.
Es ist ein Onlineshop und ich möchte gerne eine Tabelle erstellen,
die ausgibt, welche Kunden einen bestimmten Artikel gekauft haben.
Die Artikel haben teils mehrere Varianten. Max. 3.
In dem Beispiel sind es nur 2.
Größe und Farbe
Und ich möchte den Artikel RV MANUELA abfragen.
Wenn ich nun die Abfrage mache,
erstellt es mir immer eine neue Zeile für dieselbe Bestellung, da der Artikel aus zwei Varianten besteht.
Ich würde gerne diese beiden Werte in einer Zeile und einer Zelle hintereinander stehen haben.
Als Beispiel in der ersten Zeile könnte auch T und U zusammengefasst werden:
Als Beispiel wie im Bild : "Größen: 98 - 104 (0), Farbe: kingfisher" oder ähnlich.
Ich habe das mal exemplarisch manuell in der Excel angepasst.
Normal steht in der Tabelle an T2 nur Größen.

Die zwei Werte für die Variante werden hier gezogen:
orders_products_properties.properties_name,
orders_products_properties.values_name,
Auf dem angehängten Bild sieht man, wie immer zwei Zeilen erzeugt werden.
Für jegliche Hilfe bin ich sehr dankbar.
Beste Grüße,
Marko
MySQL-Version: 10.11.4-MariaDB-1--10.11.4+maria~deb11-log
PHP Version 8.2.23
Dies wäre mein Script:
PHP:
<?php
// Verbindung zur Datenbank herstellen
$host = "localhost";
$user = "geheim";
$password = "geheim";
$dbname = "geheim";
$conn = mysqli_connect($host, $user, $password, $dbname);
// Abfrage vorbereiten und ausführen
$query = "SELECT
orders.orders_id,
orders.date_purchased,
orders.customers_name,
orders.customers_company,
orders.customers_firstname,
orders.customers_lastname,
orders.customers_telephone,
orders.customers_city,
orders.customers_postcode,
orders.customers_email_address,
orders.delivery_name,
orders.delivery_street_address,
orders.delivery_city,
orders.payment_method,
orders.gambio_hub_module_title,
orders_products.final_price,
orders_products.products_quantity,
products.products_model,
orders_products.products_name,
orders_products_properties.properties_name,
orders_products_properties.values_name,
products.products_ordered
FROM
orders
JOIN orders_products ON orders_products.orders_id = orders.orders_id
JOIN products ON orders_products.products_id = products.products_id
JOIN orders_products_properties ON orders_products.orders_products_id = orders_products_properties.orders_products_id
WHERE
orders_products.products_model = 'RV MANUELA--'";
$result = mysqli_query($conn, $query);
// CSV-Datei erstellen und Daten schreiben
$file = fopen('abfragen_artikel.csv', 'w');
//Spaltennamen
$column_names = array("Bestellnummer",
"Bestelldatum",
"Name",
"Company",
"Vorname",
"Nachname",
"Telefonnummer",
"Stadt",
"Postleitzahl",
"Email Adresse",
"Versand Name",
"Versand Strasse",
"Versand Stadt",
"Bezahlmethode",
"Bezahlmethode02",
"Endpreis Kunde",
"Anzahl",
"Produkt ID",
"Produktname",
"Varianten Name",
"Variante",
"Gesamtanzahl Verkäufe");
fputcsv($file, $column_names, '|');
while ($row = mysqli_fetch_assoc($result)) {
fputcsv($file, $row, '|');
}
fclose($file);
mysqli_close($conn);
// Erfolgsmeldung ausgeben
echo "Der Export wurde erfolgreich abgeschlossen!";
?>
Zuletzt bearbeitet: