Bulldozer82
Grünschnabel
Moin Leute,
habe mir hier aus mehreren Tutorials und Threads eine Blätterfunktion zusammengebastelt, die auch fast perfekt funktioniert.
1. Problem : Wenn man per URL-Parameter keine Seitenzahl mitgibt, kommt es zu einer Fehlermeldung. "Undefined index ['p']"
2. Problem : Ich habe zum testen 3 Datensätze in der betreffenden Tabelle. Es werden aber nur 2 Datensätze rausgeholt, und die Blätterleiste so angezeigt :
Seite 1 - index.php?p=0 - Beim Aufruf kommt es zu einer Fehlermeldung
Seite 2 - index.php?p=1 - Anzeige von Datensatz 1 aus der Tabelle
Seite 3 - index.php?p=2 - Anzeige von Datensatz 2 aus der Tabelle
Ich habe schon alles möglich rumprobiert um das Problem selbst zu lösen, komme aber einfach nicht weiter. Was muss ich ändern, damit die erste Seite auch "index.php?p=1" ist?
Ich hoffe ich habe das Problem verständlich beschrieben.
Hier der Code:
habe mir hier aus mehreren Tutorials und Threads eine Blätterfunktion zusammengebastelt, die auch fast perfekt funktioniert.
1. Problem : Wenn man per URL-Parameter keine Seitenzahl mitgibt, kommt es zu einer Fehlermeldung. "Undefined index ['p']"
2. Problem : Ich habe zum testen 3 Datensätze in der betreffenden Tabelle. Es werden aber nur 2 Datensätze rausgeholt, und die Blätterleiste so angezeigt :
Seite 1 - index.php?p=0 - Beim Aufruf kommt es zu einer Fehlermeldung
Seite 2 - index.php?p=1 - Anzeige von Datensatz 1 aus der Tabelle
Seite 3 - index.php?p=2 - Anzeige von Datensatz 2 aus der Tabelle
Ich habe schon alles möglich rumprobiert um das Problem selbst zu lösen, komme aber einfach nicht weiter. Was muss ich ändern, damit die erste Seite auch "index.php?p=1" ist?
Ich hoffe ich habe das Problem verständlich beschrieben.
Hier der Code:
PHP:
<?php
error_reporting(E_ALL);
include 'config.php';
@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
mysql_select_db(MYSQL_DATABASE) OR
die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
if(!isset($_GET['p']))
$queryString = 0;
else
$queryString = $_GET['p'];
// Konfigurationsdatei laden
$sql = "SELECT * FROM `tabelle`;";
$items = mysql_num_rows(mysql_query($sql));
$itemsPerPage = 1;
$queryString = 'p';
$extendedQueryString = '';
function browsePages($items, $itemsPerPage, $queryString, $extendedQueryString)
{
// Wenn mehrere Query Strings angegeben sind wird & als Oberator gewählt, ansonsten ?
if($extendedQueryString == '')
$operator = '?';
else
$operator = '&';
// Wenn mehr vorhanden Einträge, als auf eine Seite Passen, dann starte Berechnung & Ausgabe
if($items > $itemsPerPage)
{
// Seitenanzahl bestimmen
$pages = intval($items / $itemsPerPage);
if($items % $itemsPerPage)
$pages++;
echo 'Seiten : ';
// Eine Seite zurück & Startseite
if($_GET[$queryString] != 0)
{
$iNegativeQS = $_GET[$queryString] - $itemsPerPage;
echo '
<a href="'.$_SERVER['PHP_SELF'].$extendedQueryString.$operator.$queryString.'=1">Erste</a> -
<a href="'.$_SERVER['PHP_SELF'].$extendedQueryString.$operator.$queryString.'='.$iNegativeQS.'">Zurueck</a> - ';
}
$iLastPage = ($pages * $itemsPerPage) - $itemsPerPage;
// Seiten auflisten
for($i = $_GET[$queryString] - 3; $i <= $_GET[$queryString] + 3; $i++)
{
if(!($i <= -1) && !($i > ($iLastPage / $itemsPerPage)))///
{
$showNumber = $i + 1;
if($_GET[$queryString] == $i)
echo '['.$showNumber.'] ';
else // Beispiel: index.php ( ?category=$i ) ? // & page = $j
echo '<a href="'.$_SERVER['PHP_SELF'].$extendedQueryString.$operator.$queryString.'='.$i.'">'.$showNumber.'</a> ';
}
}
// Eine Seite weiter & letzte Seite
if($_GET[$queryString] != ($iLastPage / $itemsPerPage))
{
$iPositiveQS = ($_GET[$queryString] + ($itemsPerPage / $itemsPerPage));
echo '
- <a href="'.$_SERVER['PHP_SELF'].$extendedQueryString.$operator.$queryString.'='.$iPositiveQS.'">Weiter</a>
- <a href="'.$_SERVER['PHP_SELF'].$extendedQueryString.$operator.$queryString.'='.($iLastPage / $itemsPerPage).'">Letzte</a>';
}
}
}
if (!isset($_GET['p'])) { //Abfrage, wenn keine Seitenzahl gegeben ist.
$sql = "SELECT * FROM `tabelle` LIMIT 0,".$itemsPerPage.";";
} else { //Abfrage, wenn eine Seitenzahl gegeben ist.
$abeintrag = $_GET['p'] * $itemsPerPage - $itemsPerPage;
$sql = "SELECT * FROM `tabelle` LIMIT ".$abeintrag.",".$itemsPerPage.";";
}
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
echo "Ausgabe der Ergebnisse BLA BLA"}
// Blätterfunktion einbinden - [Anzahl der Beiträge], [Beiträge pro Seite], [Query String], [zusätzlicher Query String]
browsePages ($items, $itemsPerPage, $queryString, $extendedQueryString);
?>