kostenloser Webspace werbefrei: lima-city


mysql schrittweise auslesen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    b****r

    Hallo

    wie kann ich eine MySQL-Tabelle nur Schritt für Schritt auslesen?

    z.B. die Tabelle enthält 100 Einträge

    ich will aber immer nur 10 davon auslesen

    ok, mit LIMIT = 10
    aber ich will ja nicht nur die ersten 10, wie sage ich ... "fang an zu zählen bei" ?!?

    also die ersten 10, dann die nächsten 10 Stück , usw.. (je 10 auf Seite)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. du musst den Startwert, also ab wo er anfangen soll die Datensätze zu holen, per variable mitteilen.

    Dazu musst du ja auch wissen, wieviele auf einer Seite dargestellt werden. Dazu dann z.B. in einer if-abfrage den Startwert ermitteln:

    if ($page > 1) { // wenn mehr als eine seite
    		if ($page == 2) { // wenn zweite seite, dann ist der startwert gleich der anzahl der einträge pro seite
    		$start = $proseite;
    		}
    		if ($page > 2) { // wenn seite mehr als 2 dann startseite entsprechend ausrechnen
    		$start = ($page-1) * $proseite;
    		}
    	} else { // wenn nur eine seite, starte bei 0
    		$start = 0;
    	}


    $page ist die variable, die die aktuelle Seitenzahl enthält

    Dann einfach in der SQL abfrage den startwert mitgeben:

    SELECT
    				*
    			FROM
    				tabelle
    			LIMIT 
    				$start,
    				$proseite;";






  4. viel effizienter und performanter geht es aber SO ;o)

    lg
  5. Hallo
    und Danke, aber das Zählen (ermitteln) der aktuellen Seite ist nicht mein Problem

    ich kann zwar auf Seiteb Blättern, aber mein Problem ist,
    bei jedem Seiten-Aufruf wird jedesmal die komplette Tabelle -> Array eingelesen
    aber eben nur die passenden zru Seite ausgegeben

    zeige ... von Array{$start] bis Array{$ende] .... z.B. Seite 2: von 11 bis 20 ... uswl

    aber das gesamte Array ist ja vorhanden, also alle Daten ...

    so wie ich es oben verstanden habe, einfach bei LIMIt 2 Werte: Start und Ende ?!

    $query = "SELECT FROM tabelle .... ... LIMIT (11,20) ";
    $query = "SELECT FROM tabelle .... ... LIMIT (21,30) ";
    ... usw. .... richtig?


    viel effizienter und performanter geht es aber SO ;o)



    hmm? ... da verstehe ich nur Bahnhof
    ich fnde auch leider kein php Beispiel mit ... HANDLER ... READ
    bitte um Erklärung ...effizienter und performanter wäre natürlich besser ?! :)
    Danke!
  6. webgalaxy schrieb:
    [...]
    ich kann zwar auf Seiteb Blättern, aber mein Problem ist,
    bei jedem Seiten-Aufruf wird jedesmal die komplette Tabelle -> Array eingelesen
    aber eben nur die passenden zru Seite ausgegeben
    [...]
    Das ist unnötiger Traffic und wahrlich nicht performant! :scared:

    webgalaxy schrieb:
    [...]
    so wie ich es oben verstanden habe, einfach bei LIMIt 2 Werte: Start und Ende ?!

    $query = "SELECT FROM tabelle .... ... LIMIT (11,20) ";
    $query = "SELECT FROM tabelle .... ... LIMIT (21,30) ";
    ... usw. .... richtig?
    [...]
    So hat es badiya gemeint. Nur das nach dem Schlüsselwort SELECT ein * bzw. eine Selektion der benötigten Attribute fehlt. :wink:

    webgalaxy schrieb:
    [...]

    viel effizienter und performanter geht es aber SO ;o)


    hmm? ... da verstehe ich nur Bahnhof
    ich fnde auch leider kein php Beispiel mit ... HANDLER ... READ
    bitte um Erklärung ...effizienter und performanter wäre natürlich besser ?! :)
    Danke!
    Also das sollte laut Dokumentation, wohin der Link von hemiolos verweist, in deinem Fall so aussehen:
    $query = "HANDLER tabelle OPEN;
    HANDLER tabelle READ ... LIMIT (11,20);
    HANDLER tabelle CLOSE;";
    $query = "HANDLER tabelle OPEN;
    HANDLER tabelle READ .... ... LIMIT (11,20);
    HANDLER tabelle CLOSE;";
    Zu beachten sei hier, dass bei der Verwendung von HANLDER kein LOCK durchgeführt wird. Es besteht also die Möglichkeit, keine aktuellen Daten abzufragen!

    Beitrag zuletzt geändert: 24.5.2011 11:39:37 von wagnerm
  7. beeker schrieb:
    hmm? ... da verstehe ich nur Bahnhof
    ich fnde auch leider kein php Beispiel mit ... HANDLER ... READ
    bitte um Erklärung ...effizienter und performanter wäre natürlich besser ?! :)
    Danke!


    wagnerm schrieb:
    ...
    Also das sollte laut Dokumentation, wohin der Link von hemiolos verweist, in deinem Fall so aussehen:
    ...
    Zu beachten sei hier, dass bei der Verwendung von HANLDER kein LOCK durchgeführt wird. Es besteht also die Möglichkeit, keine aktuellen Daten abzufragen!

    JA - bei PHP und MySQL unwissenheit ;o), sonst läuft alles gut!
    wir könnten darüber eine anleitung hier anlegen, aber bei lima geht das 'momentan' nicht. tut leid!

    lg
    hemiolos
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!