Blätterfunktion Denkanstoss

uff also erstmal vielen Dank habs grad mal so auf ner leeren Seite eingefügt und da klappt es genauso wie ich es mir vorgestellt hab. Das einfügen in die Seite sollte kein Problem darstellen. Hoff ich wenigstens mal ;)
Ne ehrlich, vielen Dank

Werd mir den Code auch genau anschauen damit ich draus was lerne.

Danke
 
Schön, wenn ich dir helfen konnte. Ich würde mich freuen, eine Rückmeldung zu hören, wenn alles eingebaut ist und funktioniert. Vielleicht hast du dann auch mal nen Link zum Angucken?

Mamphil
 
Also ich habe weitere Probleme entdeckt.

Bis zur anzahl der Seiten von 4 ist alles in Ordnung.
Wenn ich $anz_seiten auf 4 setze und auf Seite 1 oder 4 gehe, also der ersten und der letzten Seite werden:
* auf Seite 1 die Links für Seite 4 zweimal angezeigt.
* auf Seite 4 die Links für Seite 1 zweimal angezeigt.
Sie werden also in der Schleife gelistet _und_ nochmal von der if-Abfrage die den ersten/letzten link ausgibt erfasst.

Wenn ich nun $anz_seiten auf 5 setze werden:
* auf Seite 1, 2 die Links für Seite 5 zweimal ausgegeben.
* auf Seite 4, 5 die Links für Seite 1 zweimal ausgegeben.

Ab einer Seitenzahl von 6 ($anz_seiten = 6) tritt der Fehler nicht mehr auf.
Ich nehme also an es hat etwas mit der Anzahl der zu zeigenden Seiten zu tun ($zeige_seiten).

Der Fehler müsste irgendwie daran liegen, dass wir ja die Anzahl der zu zeigenden Seiten verringern, aber bei der abfrage ob der erste/letzte link gezeigt werden soll nicht diese neuen zahlenverhältnisse benutzen, sondern einfach neu teilen.

Bin aber leider noch nicht wirklich dahinter gekommen.

Edit: Wenn man die oben genannten Möglichkeiten abfragt und den ersten/letzten link jeweils nicht anzeigt, falls diese erfüllt werden, kann man mit einer $zeige_seiten zahl von 5 arbeiten. ohne fehler.
 
Zuletzt bearbeitet:
Hi!

Kannst du deinen modifizierten Code bitte einmal posten? So ganz verstehe ich deine im "Edit:.."-Teil erklärte Lösung nicht :(

Mamphil
 
Hallo,

@Mamphil: Dein php-Code hat mir sehr geholfen - danke.

Ich hab den unter: Demo eingebaut.

Meine Fragen:
Es werden immer die 5 gleichen Produkte auf den Seiten angezeigt.
Wie erreiche ich das auf Seite 2,3,4, usw. immer 5 neue Produkte angezeigt werden?


PHP:
<?php 
include "CSV/config.csv.php"; 
// auslesen der Daten 
$sql = "SELECT 
ID , 
ArtNumber , 
Title , 
Description_short , 
DisplayPrice 

FROM 
affilinet_shop ORDER BY ID LIMIT 5 
"; 
$return = mysql_query($sql) OR die(mysql_error()); 

?> 
<?php 
while($_data = mysql_fetch_assoc($return)) 
{ 
?> 
<table width="95%"  border="0"> 
  <tr> 
    <td width="16%" height="27"><strong><code><font color="#000000" face="Arial, Helvetica, sans-serif">Spielername::</font></code></strong></td> 
    <td width="84%"><span class="Stil25"><?php echo $_data['ID']; ?></span></td> 
  </tr> 
  <tr> 
    <td height="30"><strong><font color="#000000" face="Arial, Helvetica, sans-serif"><code>Siege:</code></font></strong></td> 
    <td><span class="Stil25"><?php echo $_data['Artnumber']; ?></span></td> 
  </tr> 
  <tr> 
    <td height="32"><strong><font face="Arial, Helvetica, sans-serif">Tore:</font></strong></td> 
    <td><span class="Stil25"><?php echo $_data['Title']; ?></span></td> 
  </tr> 
  <tr> 
    <td height="26"><strong><font face="Arial, Helvetica, sans-serif">Spiele:</font></strong></td> 
    <td><span class="Stil25"><?php echo $_data['Description_short']; ?></span></td> 
  </tr> 
  <tr> 
    <td height="30"><strong><font face="Arial, Helvetica, sans-serif">Unentschieden:</font></strong></td> 
    <td><span class="Stil25"><?php echo $_data['DisplayPrice']; ?></span></td> 
  </tr> 
  <tr> 
    <td height="29"><strong><font face="Arial, Helvetica, sans-serif">Verlohren</font></strong></td> 
    <td><span class="Stil25"><?php echo $_data['nie']; ?></span></td> 
  </tr> 
  <?php 
  } 
  ?> 
</table> 
<center>
<?php

// Beispiel: Ich bin auf Seite 1, wenn keine Seite per GET übergeben wird:
if (isset($_GET['seite']) && is_numeric($_GET['seite']))
    $seite = $_GET['seite'];
else
    $seite = 1;
// Es gibt insgesamt 43 Seiten
$anz_seiten = 43;
// Anzahl der anzuzeigenden Seitenzahlen (sollte ungerade sein):
$zeige_seiten = 5;

// Wieviele Seitenzahlen werden links / rechts neben der aktiven Zahl gezeigt?
$zeige_links = floor($zeige_seiten / 2);
$zeige_rechts = $zeige_seiten - $zeige_links - 1;

// Wenn die aktive Zahl ganz am Anfang oder Ende steht: passe die Anzahl der links / rechts stehenden Zahlen an:
if ($seite - $zeige_links < 1) {
    $zeige_links = $seite - 1;
    $zeige_rechts = $zeige_seiten - $zeige_links - 1;
    }
else if ($seite + $zeige_rechts > $anz_seiten) {
    $zeige_rechts = $anz_seiten - $seite;
    $zeige_links = $zeige_seiten - $zeige_rechts - 1;
    }

// Link "Anfang" anzeigen:
if ($seite > ceil($zeige_seiten / 2))
    echo '<a href="'.$_SERVER['PHP_SELF'].'?seite=1">&lsaquo;&lsaquo;</a> ';

for ($i = 1; $i <= $anz_seiten; $i++) {
    if (($i >= $seite - $zeige_links) && ($i <= $seite + $zeige_rechts)) {
        if ($i == $seite)
            echo '<b>'.$i.'</b>';
        else
             echo '<a href="'.$_SERVER['PHP_SELF'].'?seite='.$i.'">'.$i.'</a>';
        echo ' ';
        }
    }

// Link "Ende" anzeigen:
if ($seite <= $anz_seiten - ceil($zeige_seiten / 2))
    echo '<a href="'.$_SERVER['PHP_SELF'].'?seite='.$anz_seiten.'">&rsaquo;&rsaquo;</a>';

?>
</center>

Und durch was muss ich bei $anz_seiten = 43; einsetzen damit die "vorhandene Anzahl"
der Seiten (ist variabel) angezeigt wird.

Danke für Infos.
 
Das liegt an deinem Limit 5. Du musst dir ausrechnen, bei welcher Seite der wie vielte Eintrag ist. Dann musst du bei LIMIT nicht 5 sondern z.B. $aktuell, $aktuell+5 angeben.

Schau mal unter den Tuts. Da ist irgendwo eine Blätterfunktion. Da kannst du grad das mit dem Rechnen übernehmen
 
Zurück