Blätterfunktin mit Begrenzung

Hallo,

ich bastel gerade an einer Ausgabe, die über mehrere Seiten ausgegeben wird.
Die Ausgabe über mehrere Seiten funktioniert auch tadellos, aber ich möchte die Ausgabe so haben das diese auf eine Bestimmte Anzahl begrenzt ist.

Beispiel :
in der Datenbank stehen 56 Datensätze es sollen aber nur die ältesten 50 angezeigt werden alle anderen Einträge sollen ignoriert werden.

Code zur Ausgabe auf mehrere Seiten:
PHP:
<?php
  $proseite = 10;

  if(empty($_GET['page'])){ $_GET['page'] = 1; }

  $anzahl_qry = mysql_query("SELECT * FROM ".$tabelle['abc']);  
  $anzahl = mysql_num_rows($anzahl_qry);    	 //ermitteln wieviele Datensätze vorhanden sind
  $seiten = ceil($anzahl/$proseite);           	 //ermitteln wieviele Seiten daraus entstehen
  
  $start = ($_GET['page']-1) * $proseite;
  
  $qry = mysql_query("SELECT * FROM ".$tabelle['abc']. " LIMIT ".$start.",".$proseite);

  if ($_GET['page']>1)
 { 
    $i=$_GET['page']-1; 
    echo "<a href='".$_SERVER['PHP_SELF']."?page=".$i."'>&lt;zurück</a>&nbsp;"; 
  } 
  for($i=1; $i<=$seiten; $i++)
 {
    if ($i==$_GET['page']) 
    {
       echo $i."&nbsp;";
    } 
    else
    { 
       echo "<a href='".$_SERVER['PHP_SELF']."?page=".$i."'>$i</a>&nbsp;"; 
    } 
  }
  if ($_GET['page']<$seiten)
  { 
    $i=$_GET['page']+1; 
    echo "&nbsp;<a href='".$_SERVER['PHP_SELF']."?page=".$i."'>weiter&gt;</A>"; 
  }

  while($erg = mysql_fetch_array($qry))
  {
    ... ausgabe ...
  }
?>

Ich Danke schonmal im vorraus :) und wünsche allen eine Gute Nacht.
 
Sofern du in der Tabelle eine Datumsspalte hast, sollte es reichen, wenn du dir die Datensätze mit LIMIT 50 , absteigend sortiert nach der Datumsspalte holst.
 
Du musst doch nur die Variable $start überprüfen. Sobald sie Größer ist als 50-$proseite soll $proseite nurnoch die differenz von 50 und $start sein. Also so:

PHP:
if($start > (50-$proseite)){
    $proseite=50-$start;
}

So müsste es funktionieren.
 
Hallo!

Aber er hat doch schon ein LIMIT für die Blätterfunktion, wie soll er darauf denn noch ein LIMIT setzen?
Wenn ich es nämlich richtig verstehe, dann will er gesamt max. 50 (von 56) Einträge zu jeweils 10 Einträgen/Seite haben.

Gruss Dr Dau
 
nero_85 hat gesagt.:
Du musst doch nur die Variable $start überprüfen. Sobald sie Größer ist als 50-$proseite soll $proseite nurnoch die differenz von 50 und $start sein. Also so:

PHP:
if($start > (50-$proseite)){
    $proseite=50-$start;
}

So müsste es funktionieren.

Darum mein Vorschlag ;)
 
@nero_85, dass war eigentlich auch an Sven gerichtet. ;)
Im liegen kann ich bloss nicht so schnell schreiben. :-)
 
Dann steh auf...fauler Hund :suspekt:

Die Betonung in meinem Vorschlag sollte eher auf "absteigend sortiert nach der Datumsspalte holst" liegen. Dass da schon ein LIMIT ist, hab ich selbst vom Bett aus gesehen :-)
 
Sven Mintel hat gesagt.:
Dann steh auf...fauler Hund :suspekt:
Nee, will schlafen. :p

Aber ich verstehe nicht wie er dabei zwei mal ein LIMIT setzen sollte..... schliesslich soll die Blätterfunktion ja auch funktionieren.
Dem nach müsste es also sowas wie LIMIT start,proseite,max sein..... ich wüsste aber nicht dass es sowas geben würde.
Da ist mir nero_85 seine Variante schon verständlicher.
 
Zurück