Patrick: MySQL Zeilen zählen

Hallo Leute,

ich möchte eine Abfrage ausführen und dann die Ergebnisse Seitenweise Anzeigen, z.B. <<zurück 1 2 3 4 weiter >>

Dazu habe ich momentan 2 Befehle:

SELECT DISTINCT ,(count(*)) FROM [...] WHERE[...]
Fürs ermitteln der Gesamtzahl der Einträge

SELECT * FROM [...] WHERE[...] LIMIT untergrenze, obergrenze
Fürs Ergebnis, was angezeigt wird (mit LIMIT)

Leider muß der selbe Befehl 2 mal ausgeführt werden.
Kann man das alles in einem Befehl unterbringen?
Oder ist count(*) weniger Performancelastig?

Gruß

Der Patrick

  1. ich möchte eine Abfrage ausführen und dann die Ergebnisse Seitenweise Anzeigen, z.B. <<zurück 1 2 3 4 weiter >>

    Hilft dir http://www.php-faq.de/q/q-mysql-seitenweise.html?

    Siechfred

    --
    Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
  2. echo $begrüßung;

    Leider muß der selbe Befehl 2 mal ausgeführt werden.
    Fürs ermitteln der Gesamtzahl der Einträge
    Fürs Ergebnis, was angezeigt wird (mit LIMIT)
    Kann man das alles in einem Befehl unterbringen?

    Sieh dir [linkhttp://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows@title=SQL_CALC_FOUND_ROWS und FOUND_ROWS()] an.

    Oder ist count(*) weniger Performancelastig?

    Ein SELECT COUNT(*) FROM ...  ohne einschränkende WHERE-Klausel schaut einfach nur in den Metadaten der Tabelle nach der Anzahl. Es zählt also nicht wirklich. Mit WHERE muss allerdings gezählt werden.

    echo "$verabschiedung $name";

  3. ich möchte eine Abfrage ausführen und dann die Ergebnisse Seitenweise Anzeigen, z.B. <<zurück 1 2 3 4 weiter >>

    Dazu habe ich momentan 2 Befehle:

    SELECT DISTINCT ,(count(*)) FROM [...] WHERE[...]
    Fürs ermitteln der Gesamtzahl der Einträge

    Was macht das DISTINCT da?

    SELECT * FROM [...] WHERE[...] LIMIT untergrenze, obergrenze
    Fürs Ergebnis, was angezeigt wird (mit LIMIT)

    Leider muß der selbe Befehl 2 mal ausgeführt werden.

    Inwiefern?

    Kann man das alles in einem Befehl unterbringen?
    Oder ist count(*) weniger Performancelastig?

    COUNT(*) ist gut, willst Du zwei Abfragen vermeiden? Wüsste nicht wie das gehen soll.