16.05.2016: Es gibt ein paar Aktualisierungen auf unserem Blog! Die Underground Suchmaschine mit welcher ihr Seiten wie die Boerse oder Mygully durchsuchen könnt, wurde komplett überarbeitet. Die XXX Stream Liste wurde aktualisiert, tote Links mit neuen ersetzt, das gleiche gilt für die MP3 Suchmaschinen und die Liste mit den Android Apps wurde ebenfalls erweitert.

PHP Blätterfunktion/Seitennavigation

Auf der Suche nach einer einfachen Blätterfunktion bin ich schlussendlich bei www.alice-grafixx.de gelandet, wo ich eine wirklich gute Blätterfunktion - geschrieben in PHP - gefunden habe. Dieses Script möchte ich hier nun kurz vorstellen.

PHP CODE
// Datenbankverbindung
//---------------------------------------------------
$host = "localhost"; // Adresse des Datenbankservers, meist localhost
$user = ""; // Ihr MySQL Benutzername
$pass = ""; // Ihr MySQL Passwort
$dbase = ""; // Name der Datenbank

$connection = mysql_connect("$host" , "$user" , "$pass")
OR die ("Keine Verbindung zu der Datenbank moeglich.");
$db = mysql_select_db($dbase , $connection)
OR die ("Auswahl der Datenbank nicht moeglich.");
//---------------------------------------------------

$pfad = $_SERVER['PHP_SELF']; // aktuellen Dateipfad ermitteln, wichtig fuer die Links der Seitennavigation

$query = mysql_query("SELECT id FROM user"); // DB Abfragee

// ------------------------------------------------------------------------

$datensaetze_pro_seite = "10"; // Anzahl der Datensaetze die Pro Seite angezeigt werden sollen
$p = "3"; // Anzahl der Links die in der Seitenavigation ausgegeben werden

$total = mysql_num_rows($query); // liefert die Anzahl der Datensaetze der Abfrage
$seiten = ceil($total / $datensaetze_pro_seite); // Berechnet die Seitenanzahl insgesamt

// ------------------------------------------------------------------------

if(empty($_GET['go'])){ // korrigieren der aktuellen Seite

$go = 1; // Sofern $go nicht uebergeben wurde

}elseif($_GET['go'] <= 0 || $_GET['go'] > $seiten){

$go = 1; // Variable definieren

}else{ // Wenn Obiges nicht zutraf

$go = mysql_real_escape_string($_GET['go']); // Variable definieren
}

$links = array(); // Linkkette bilden

// Seite die vor der aktuellen Seite kommt definieren
if(($go - $p) < 1){ $davor = $go - 1; }else { $davor = $p; }

// Seite die nach der aktuellen Seite kommt definieren
if(($go + $p) > $seiten){ $danach = $seiten - $go; }else{ $danach = $p; }

$off = ($go - $davor); // Variable definieren

if ($go- $davor > 1){ // Link definieren => Zur Erste Seite springen
$first = 1;
$links[] = "<a href=\"$pfad?go=$first\" title=\"Zur ersten Seite springen\">&laquo; Erste ...</a>\n";
}

if($go != 1){ // Link definieren => eine Seite zurueck blaettern
$prev = $go-1;
$links[] = "<a href=\"$pfad?go=$prev\" title=\"Eine Seite zurueck blaettern\"> &laquo;</a>\n";
}


for($i = $off; $i <= ($go + $danach); $i++){ // einzelne Seitenlinks erzeugen

if ($i != $go){ // Link definieren

$links[] = "<a href=\"$pfad?go=$i\">$i</a>\n";

}elseif($i == $seiten) { // aktuelle Seite, ein Link ist nicht erforderlich

$links[] = "<span class=\"current\">[ $i ]</span>\n";

}elseif($i == $go){ // aktuelle Seite, ein Link ist nicht erforderlich

$links[] = "<span class=\"current\">[ $i ]</span>\n";

} // close if $i
}

if($go != $seiten){ // Link definieren => eine Seite weiter blaettern
$next = $go+1;
$links[] = "<a href=\"$pfad?go=$next\" title=\"Eine Seite weiter blaettern\"> &raquo; </a>\n";
}

if($seiten - $go - $p > 0 ){ // Link definieren => Zur letzen Seite springen
$last = $seiten;
$links[] = "<a href=\"$pfad?go=$last\" title=\"Zur letzten Seite springen\">... Letzte &raquo;</a>\n";
}

$start = ($go-1) * $datensaetze_pro_seite; // Berechne den Startwert fuer die DB


$link_string = implode(" ", $links); // Zusammenfuegen der einzelnen Links zu einem String

$abfrage = mysql_query("SELECT ID, Name, Email, DATE_FORMAT(Datum, '%d.%m.%Y') AS datum FROM user LIMIT $start,$datensaetze_pro_seite ");

// Daten ausgeben
while($row = mysql_fetch_object($abfrage)){

echo "<p>".$row->ID." - "$.row->Name."<br />\n";
echo "Email: ".$row->Email."<br /> \n";
echo "Datum: ".$row->datum."\n </p>";

} // close while

// -------------------------------------- Seitennavigation ausgeben ----------------------------
echo "<div id=\"navigation\">\n";

echo "<span class=\"pages\">Seite ".$go." von ".$seiten."</span>\n";

echo $link_string; // Ausgabe der Seitennavigation

echo "</div> \n";
// -------------------------------------- Seitennavigation ende --------------------------------

Das ist also das Script, welches es uns ermöglicht, eine Blätterfunktion für eine beliebige Datenbank Abfrage in unsere Homepage zu integrieren. Mit ein wenig CSS schaut diese Blätterfunktion dann wie folgt aus:

Error: Image Not Found!

CSS CODE
#navigation a {
border: 1px solid #E0E0E0;
margin: 0 1px;
padding: 4px 7px;
color: #444;
font-weight: bold;
text-decoration: none;
}

#navigation a:visited {
color: #507DB4;
font-weight: normal;
text-decoration: none;
}

#navigation a:hover, #navigation a:active {
border: 1px solid #507DB4;
background: #F8F8F8;
color: #737373;
text-decoration: none;
}

.current {
border: 1px solid #E0E0E0;
padding: 4px 7px;
color: #444;
}

.pages{
border: 1px solid #E0E0E0;
padding: 2px 7px;
float: right;
margin: -3px 0 0;
}

Über diesen CSS Code kann das Script individuell an das Design der Seite angepasst werden.

Hinweis: Die Integration in eine bestehende Homepage bzw. die Verbindung mit einer bestehenden Datenbank ect. erfordert natürlich Grundkenntnisse in PHP, HTML sowie CSS. Zudem möchte ich hier ausdrücklich betonen, dass das Script nicht auf meinem Mist gewachsen ist. Demzufolge werde ich hier auch keinen Support leisten. Bei simplen Fragen zum Script helfe ich aber gerne weiter. Ansonsten wendet euch bitte direkt an www.alice-grafixx.de.

Script Page: www.alice-grafixx.de/PHP-MYSQL-Tutorial/Blaetterfunktion-(Seitennavigation)

Tags: php html css mysql sql, navigation blaetterfunktion pagination , script programmierung, tutorial anleitung howto