dedlfix: Einträge zusammen zählen lassen

Beitrag lesen

Tach!

also wenn ich dieses ausführen lasse

SELECT count(*) as total, 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

erhält meine Ausgabe nur einen Eintrag. Lasse ich das count() as total weg, habe ich wieder alle.

Ja klar, weil COUNT(*) eine Aggregatfunktion ist. Die führt alle Ergebnisse der Ergebnismenge zu einer Zeile zusammen. Oder bei Gruppen zu einer je Gruppe. COUNT(*) ist dafür da, die Anzahl der betroffenen Datensätze zu zählen. Die Datensätze selbst landen nicht in der Ergebnismenge.

Die Frage ob COUNT(*) oder num_rows das Mittel der Wahl ist, hängt von der Aufgabenstellung ab. Benötigst du nur die Anzahl, dann nimm COUNT(*). Benötigst du die Datensätze ebenfalls, dann nimm num_rows (und store_result) zusätzlich zum Fetchen. Gehen wir von letzterem aus, ist dein Fehler nicht im SQL-Bereich zu suchen, sondern eine Wissenslücke im Bereich OOP. Deshalb bitte Grundlagenwissen aneignen: Was sind Eigenschaften (properties) und was sind Methoden (methods). Und wie notiert man das, wenn man Eigenschaften auslesen möchte und wie wenn man Methoden ausführen möchte.

dedlfix.