Ich verwende ein Filtersystem, um Produkte zu kategorisieren. Die Filter werden zusammen mit den Produktergebnissen angezeigt und sind statische Links, mit denen Benutzer ihre Auswahl eingrenzen können.Erstellen einer Abfrage innerhalb einer Abfrage
Ich habe es geschafft, alle Filter innerhalb einer Abfrage anzuzeigen. Allerdings würde ich gerne ein Nummerierungssystem für jeden Filter hinzufügen. d.h. eine Zahl nach jedem Filter, die angibt, wie viele Ergebnisse angezeigt werden, wenn der Filter ausgewählt oder entfernt wird.
- Hose (21)
- Shirts (17)
- T-Shirts (34)
diese Abfrage wie
Meine Filter ist
$qry = mysqli_query("SELECT * FROM categories");
Aber dann was ich erreichen möchte, ist
while($row = mysqli_fetch_assoc($qry) {
$cat_id = $row['cat_id'];
$qry1 = mysqli_query("SELECT * FROM products WHERE category=$cat_id");
$num_results = mysqli_num_rows($qry1);
$filter[$cat_id] = array('cat_name'=>$row['cat_name'],'results'=>$num_results);
}
So versuche ich, die oben mit nur einer Abfrage oder sogar 2, wenn notwendig, aber nicht mehr als 30 (da es 30 Filter, dh eine Abfrage für jeden Filter wäre nicht effizient)
zu erreichen gibt es etwas entlang der Linien von
$qry = mysqli_query("SELECT *,count(SELECT * FROM products WHERE category=cat_id) FROM categories");
ich seine kenne eine bizare Abfrage, aber ich meine, ist es etwas, was die Ergebnisse einer anderen Abfrage in einer Abfrage zu zählen?
Sie nie die Abfrage für eine Sache –
ausgeführt ich ein Array mit dem CAT_NAME und NUM_RESULTS schaffen wollte – Source
ok kann ich PDO in meiner Antwort verwenden? Ich hasse mysqli, wenn das ok ist – Laith