MySQL: Suchergebnisse zählen
AllesMeins
- datenbank
Hiho,
ich habe eine einfache Volltextsuche mit der MATCH ... AGAINST Syntax von MySQl realisiert. Nun würde ich noch gerne wissen wieviele Suchergebnisse es insgesamt gibt. Da ich pro Seite nur 10 Ergebnisse ausgeben will bringt mir das mysql_num_rows() aus PHP nichts, ich muss es also direkt in der Datenbank lösen. Ich vermute mal, das es mit COUNT(*) gemacht werden muss. Nur erfordert dies ja ein GROUP BY und ich habe keine Ahnung wie ich nach "MATCH AGAINST ist ungleich 0" gruppiere. Denn das müsste ja mein Gruppierungskriterium sein, wenn ich das richtig verstanden habe. mein derzeitiger Query sieht so aus:
SELECT count(*) as gesamt, header FROM index
WHERE MATCH (header) AGAINST ('Suchbegriff') AND art = 'seite' GROUP BY ??? LIMIT 0,10
Was muss ich als Gruppierung verwenden?
Grüsse
Marc
Hello,
SELECT count(*) as gesamt, header FROM
index
WHERE MATCH (header) AGAINST ('Suchbegriff') AND art = 'seite' GROUP BY ??? LIMIT 0,10
SELECT count(*) as gesamt FROM index
WHERE MATCH (header) AGAINST ('Suchbegriff') AND art = 'seite'
Wieso verwendest Du beim Count das Limit?
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
echo $begrüßung;
ich habe eine einfache Volltextsuche mit der MATCH ... AGAINST Syntax von MySQl realisiert. Nun würde ich noch gerne wissen wieviele Suchergebnisse es insgesamt gibt. Da ich pro Seite nur 10 Ergebnisse ausgeben will ...
Ganz anders und viel einfacher:
SELECT SQL_CALC_FOUND_ROWS spalten FROM ... LIMIT x,y
und dann noch ein
SELECT FOUND_ROWS()
hinterher liefert die Anzahl der Ergebnisse, die es ohne LIMIT wär.
Geht ab MySQL 4.0.0
echo "$verabschiedung $name";