formmad
Mitglied
Hallo,
ich benötige ein wenig Hilfe. Ich habe eine SQL Blätterfunktion auf meiner Seite, hier der Code:
Nun möchte ich, wenn mehr als 20 Einträge zu sehen sind das nur die ersten 5 und die letzten 5 angezeigt werden.
Momentan sieht es dann so aus: « zurück 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 weiter »
Es sollte so aussehen: « zurück 1 2 3 4 5 ... 41 42 43 44 45 weiter »
Die Seite welche gerade angesprungen wird (im Beispiel 9) sollte in der mitte stehen der 5 Punkte.
Beispiel: « zurück 7 8 9 10 11 ... 41 42 43 44 45 weiter »
Gruß + Danke
ich benötige ein wenig Hilfe. Ich habe eine SQL Blätterfunktion auf meiner Seite, hier der Code:
PHP:
<?php
if (!isset($_GET['page'])) {
$_GET['page'] = 0;
}
if (!isset($_REQUEST['proseite'])) {
$_REQUEST['proseite'] = 30;
}
$sql = "SELECT * FROM table1";
$sqlresult = mysql_query($sql, $db);
$number = mysql_num_rows($sqlresult);
$seiten = ceil($number/$_REQUEST['proseite']);
$start = $_GET['page'] * $_REQUEST['proseite'];
$query = "SELECT * FROM table2 LIMIT $start, $_REQUEST[proseite]";
$result = mysql_query($query, $db);
$ende = $start + $_REQUEST['proseite'];
if ($ende > $number) {
$ende = $number;
}
?>
Einträge pro Seite
<select name="proseite" id="proseite" onChange="this.form.submit();">
<option value="30" <? if ($_REQUEST['proseite'] == 30) { echo "selected"; } ?>>30</option>
<option value="60" <? if ($_REQUEST['proseite'] == 60) { echo "selected"; } ?>>60</option>
<option value="90" <? if ($_REQUEST['proseite'] == 90) { echo "selected"; } ?>>90</option>
<option value="120" <? if ($_REQUEST['proseite'] == 120) { echo "selected"; } ?>>120</option>
<option value="150" <? if ($_REQUEST['proseite'] == 150) { echo "selected"; } ?>>150</option>
</select>
<?php
if ($_GET['page'] > 0) {
$i = $_GET['page'] - 1;
echo "<a href=\"viewstat.php?page=$i&proseite=".$_REQUEST['proseite']."\">« zurück</a>";
} else {
echo "<b>« zurück</b>";
}
$tttest = $_GET['page'] + 1;
$nochda = ($seiten - 1);
for ($i = 1; $i <= $_GET['page']; $i++) {
echo " <a href=\"viewstat.php?page=".($i - 1)."&proseite=".$_REQUEST['proseite']."\">".$i."</a> ";
}
$k = 0 + $_GET['page'];
for ($i = ($tttest); $i <= $seiten; $i++) {
if ($_GET['page'] == $k) {
echo " <b class=\"red\">$i</b> ";
} else {
echo " <a href=\"viewstat.php?page=$k&proseite=".$_REQUEST['proseite']."\">$i</a> ";
}
$k++;
}
if ($tttest < $seiten) {
if ($_GET['page']<$seiten) {
$i=$_GET['page']+1;
echo "<a href=\"viewstat.php?page=$i&proseite=".$_REQUEST['proseite']."\">weiter »</a>";
}
} else {
echo "<b>weiter »</b>";
}
?>
Nun möchte ich, wenn mehr als 20 Einträge zu sehen sind das nur die ersten 5 und die letzten 5 angezeigt werden.
Momentan sieht es dann so aus: « zurück 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 weiter »
Es sollte so aussehen: « zurück 1 2 3 4 5 ... 41 42 43 44 45 weiter »
Die Seite welche gerade angesprungen wird (im Beispiel 9) sollte in der mitte stehen der 5 Punkte.
Beispiel: « zurück 7 8 9 10 11 ... 41 42 43 44 45 weiter »
Gruß + Danke