Hallo,
Ich habe ein Formular für eine Suchfunktion in meiner Datenbank erstellt, leider muss ich gleich am Anfang sagen, dass der Inhalt und der Kategoriename in einer Tabelle liegen, was jetzt auch mein Problem ist, nebenbei würde das umschreiben etwas lange dauern (es sind derzeit 2000 Einträge und wachsend). Jetzt wollte ich mal fragen, ob es irgendwie möglich ist ohne X Select Anfragen zu erstellen, den Kategorienamen und die Anzahl der Beiträge auszugeben?
Meine Abfrage sieht so aus:
Jetzt gibt es natürlich wenn ich das Stichwort "auto" nehme jede Menge Einträge und die auch mit unterschiedlichen Kategorien zB 10 Einträge in Autoreifen und 5 in Autoreperatur. Wenn keine Einträge drin sind soll natürlich nichts ausgegeben werden.
Die Ausgabe hätte ich da gerne so:
- branchenname (anzahl der einträge bei dieser branche)
- branchenname 2 (anzahl der einträge bei dieser branche)
etc.
Das einzige was mir im Moment einfällt sind mehrere Select Abfragen mit jeweils einer anderen Branchenbezeichnung. Also einfach mehrere Querys und hinten das hier anhängen:
Nur kann das auch wieder zu Fehlern führen, weil dann Branchen wie Straßenmeistereien einfach untergehen.
Gibt es da einen besseren bzw. schnelleren Weg? Bin für jede Hilfe dankbar.
mfg
disc
Ich habe ein Formular für eine Suchfunktion in meiner Datenbank erstellt, leider muss ich gleich am Anfang sagen, dass der Inhalt und der Kategoriename in einer Tabelle liegen, was jetzt auch mein Problem ist, nebenbei würde das umschreiben etwas lange dauern (es sind derzeit 2000 Einträge und wachsend). Jetzt wollte ich mal fragen, ob es irgendwie möglich ist ohne X Select Anfragen zu erstellen, den Kategorienamen und die Anzahl der Beiträge auszugeben?
Meine Abfrage sieht so aus:
PHP:
$query = 'SELECT name, postleitzahl, ort, strasse, hausnummer, bundesland, bezirk, branchen FROM firmen WHERE ';
for($a=0; $a<count($searchtext); $a++)
{
$query .= "(name LIKE '%".$searchtext[$a]."%' OR
postleitzahl LIKE '%".$searchtext[$a]."%'
OR ort LIKE '%".$searchtext[$a]."%'
OR strasse LIKE '%".$searchtext[$a]."%'
OR hausnummer LIKE '%".$searchtext[$a]."%'
OR bundesland LIKE '%".$searchtext[$a]."%'
OR bezirk LIKE '%".$searchtext[$a]."%'
OR nachname LIKE '%".$searchtext[$a]."%'
OR branchen LIKE '%".$searchtext[$a]."%'
)";
if($a<count($searchtext)-1)
{
$query .= ' AND ';
}
}
Jetzt gibt es natürlich wenn ich das Stichwort "auto" nehme jede Menge Einträge und die auch mit unterschiedlichen Kategorien zB 10 Einträge in Autoreifen und 5 in Autoreperatur. Wenn keine Einträge drin sind soll natürlich nichts ausgegeben werden.
Die Ausgabe hätte ich da gerne so:
- branchenname (anzahl der einträge bei dieser branche)
- branchenname 2 (anzahl der einträge bei dieser branche)
etc.
Das einzige was mir im Moment einfällt sind mehrere Select Abfragen mit jeweils einer anderen Branchenbezeichnung. Also einfach mehrere Querys und hinten das hier anhängen:
PHP:
$query .= "AND branchen LIKE '%".$branchenname."%'";
Nur kann das auch wieder zu Fehlern führen, weil dann Branchen wie Straßenmeistereien einfach untergehen.
Gibt es da einen besseren bzw. schnelleren Weg? Bin für jede Hilfe dankbar.
mfg
disc