"Seitenweise Blättern" (Probleme mit URL Verknüpfungen)


girlie

Grünschnabel
Hi,

ich probiere nun schon seit ca. 4 Monaten meine Homepage (im speziellen meine Gallery & News Sektionen) mit einer Seitenweise Blättern Funktion auszustatten, aber leider will mir das einfach nicht gelingen, zumindest nicht so wie ich mir das Ganze dann vorstelle.
Ich habe ein vorgefertigtes Blättern-Script aus dem NET, das in allen Punkten (Funktionalität, Design) exakt meinen Wunschvorstellungen entspricht.

Ich muss noch bemerken, dass ich ein absoluter Neuling auf dem Gebiet PHP bin (dies ist mein "erster" Versuch mit PHP, ansonsten kenne mich lediglich mit HTML einigermaßen gut aus) und deswegen bitte ich hier jetzt auch um eine PHP Starthilfe.

Ich habe die Daten, von allen meinen Gallery & News Seiten, mit folg. Inhalten: URL, URLNAME und Beschreibung in einer Datenbank (mysql) erstellt/angelegt.

Jetzt zum Kern von meinem eigentlichen Problem:
Es geht darum, das meine HP stetig wächst u. wächst, sprich ständig kommen neue Seiten hinzu, u. bei jeder neu hinzugefügten Seite habe ich ja das Problem, dass ich ebenfalls "alle" anderen bisherigen Seiten halt auch entsprechend, bezüglich des Seiten-Navigation-(Wechseln)-Menüs, abändern muss. Bislang tat ich das immer von Hand :rolleyes: , aber das ist bei der Seitenvielzahl mittlerweile Streß pur.

Also ich schaffe es via dem vorgefertigten Blättern-Script die einzelnen Daten (URL, URLNAME u. Beschreibung) aus meiner Datenbank auslesen u. anzeigen zu lassen (Offline, via XAMPP). Das ist dann aber auch schon alles was ich selber hinbekomme, aber es ist halt NICHT das was ich eigentlich benötige!

Eine Datensatz-Ausgabe benötige ich nämlich gar nicht!
Vielmehr möchte ich, das die einzelnen Seitenzahlen (1, 2, 3, etc.) dieser Blättern-Funktion (sie soll später in alle meine Gallery/News Seiten "includiert" werden) verbunden sind mit meinen entsprechenden Gallery/News Seiten (sprich deren "URL´s" und die ja bereits in meiner Datenbank drinstehen) und das jene Seiten dann eben wiederum beim klick auf eine entsprechende Seitenzahl des Blättern-Menüs aufgerufen werden und folglich auch für den Besucher in Folge erscheinen. <-- und genau das zu realisieren, daran alleine scheitere ich!

Habe in den letzten Monaten, beinahe täglich u. oft mehrere Stunden lang, Forum für Forum abgeklappert um einen Lösungsansatz zu finden, habe allg. PHP Tutorials, als auch spezifische "Seitenweise Blättern" Tutorials studiert, aber immer OHNE jeglichen Erfolg. Es wird dort immer nur erklärt wie man die "Datensatz-Ausgabe" realisiert (also das halt die Inhalte der Datenbank, in schriftlicher Form ausgegeben/angezeigt werden/erscheinen), jedoch NICHT wie man es realisieren kann lediglich die LINKS (URL´s) mit der jeweilig ausgegebenen Menü-Seitenzahlennummerierungen zu verknüpfen...

Hm, irgendwie denke ich, ist wohl jedes PHP Blättern-Script auch irgendwie ein UNIKAT für sich, oder? Weil: ich habe bestimmt mittlerweile so um die ca. 20-30 Blättern-Scripts aus dem NET ausprobiert, u. es bei einem davon sogar geschafft das da plötzlich die Verlinkung zu meinen Gallery Seiten so wie ich das möchte hinbekommen (allerdings u. unglücklicherweise war es das primitivste Script von allen denn es konnte weder "Eine Seite vorwärts"/"zur letzten Seite", noch "eine Seite rückwärst"/"zur Erste Seite" blättern, deshalb nützt es mir leider nichts), die Verbindung ging u.a. via diesem Code-Teil:
echo " <a href=\"".$row["url"]."\">$b</a> "; // url als link ausgeben
(Da wurde mir logischerweise in der Browser Adresszeile auch die jeweils richtige Online-Adresse zu eine meiner Seiten angezeigt, ansonsten bekomme ich näml. immer nur ausnahmslos das hier zu sehen: http:// localhost / TEST_blaettern/blaettern1 (bzw 2,3,4 etc.).php)

Nun dachte ich OK, dann muß genau dieser Code ja auch in allen anderen Blättern-Scripten integrierbar sein u. funktionieren, aber nein, das geht nicht mal im Ansatz. Im nächsten Script hieß so ziemlich jeder Befehl gänzlichst anders... *grml*

Ich hoffe ihr werdet aus meinen Schilderungen, bezügl. was ich eben konkret realisieren möchte, einigermaßen schlau(!?), weil es ist halt bißchen kompliziert das Ganze lediglich schriftlich, detailiert erläutern zu können...

Zum noch besseren Verständnis hänge ich noch ein Pic mit an (siehe unten).

So und abschließend natürlich noch das Wichtigste, näml. das Script das ich entsprechend umgebaut haben möchte. Es wäre echt cool wenn mir jemand dabei behilflich sein könnte.

Noch eine kleine Bitte: etwaige Erklärungen bitte so einfach wie möglich schildern, so das ich als gänzliche Anfängerin das dann auch halbwegs verstehen kann.

Code:
<?php 

$progname = "blaettern.php"; 
$daten_per_site = 1; 

if(isset($_GET['seite'])) {  
$seite = preg_replace ("/[^0-9]/", "",  $_GET['seite']); 
}  
// Startzahl 
if(!isset($seite) || $seite == '') { 
$seite = 1; 
} 

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # 
# Datenbankdaten und Verbindung zur DB herstellen 
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # 
# Datenbank
include("datenbank.php")
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # 
?> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> 

<title>Seitenweise Anzeige von Daten</title> 

<style type="text/css"> 
body { 
background-color: #f7f7f7; 
font-family: Verdana, Arial; 
font-size: 11px; 
color: #000000; 
} 
.sitenav { 
background-color: #000066; 
} 
.sitenav td { 
background-color: #e9ebef; 
padding: 3px; 
font-size: 11px; 
text-align: center; 
} 
.sitenav td a { 
color: #990000; 
text-decoration: none; 
} 
.sitenav td a:hover { 
color: #000066; 
text-decoration: none; 
} 
</style> 

</head> 
<body> 

<?php 

# Limit fuer Query erstellen - Eintraege pro Seite  
$anz = ($seite-1) * $daten_per_site; 

$resultliste = mysql_query("SELECT SQL_CALC_FOUND_ROWS *, url FROM gallery_links LIMIT $anz, $daten_per_site"); 
$erg = mysql_query("SELECT FOUND_ROWS()"); 
$zeilen = mysql_fetch_row($erg); 

if ($zeilen[0] > 0) { 
$navigationslinks = sitenavi($zeilen[0], $seite, $daten_per_site, $progname); 


echo "$navigationslinks\n"; 
echo "<ul>\n"; 
while($daten= mysql_fetch_row ($resultliste)) { 

echo "<li>$daten[0] - $daten[1]</li>\n"; 

} 
echo "</ul>\n"; 
echo "$navigationslinks\n"; 


} else { 
echo "Keine Daten gefunden!\n"; 
} 

echo "</body>\n</html>\n"; 

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # 
// Seitennavigation 
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # 
function sitenavi($zeilen, $seite, $pro_seite, $url) { 

$max_ausgabe = $pro_seite; 
$gesamtseiten = ceil(($zeilen - 1) / $pro_seite+1); 

$aktuelle_seite = $seite ? $seite : 1; 
$linkanzahlausgabe = 2; 

$letzte = $linkanzahlausgabe + $aktuelle_seite; 
if ($letzte > $gesamtseiten) { 
$letzte = $gesamtseiten; 
} 

$startback = $aktuelle_seite - $linkanzahlausgabe; 
if ($startback < 1) { 
$startback = 1; 
} 

$navigationslinks = "&nbsp;"; 
if ($gesamtseiten != 1 && $zeilen) { 
$seitenlink = "TEST:"; 

if ($startback > 1) { 
$prevbl = $aktuelle_seite - 1; 
$seitenlink .=  "<td><a href=\"$url?seite=1\">« Erste Seite</a></td><td width=\"20\"> <a href=\"$url?seite=$prevbl\">&lt;</a> </td>"; 
} 

for ($i = $startback; $i <= $letzte; $i++) { 
if ($aktuelle_seite == "$i") { 
$seitenlink .= "<td width=\"20\" style=\"background-color: #ffffff\"><b>$i</b></td>"; 
} else { 
$seitenlink .= "<td width=\"20\"><a href=\"$url?seite=$i\">$i</a></td>"; 
} 
} 

if ($letzte < $gesamtseiten) { 
$nextbl = $aktuelle_seite + 1; 
$seitenlink .= "<td width=\"20\"> <a href=\"$url?seite=$nextbl\">&gt;</a> </td><td><a href=\"$url?seite=$gesamtseiten\">Letzte Seite »</a></td>"; 
} 
$navigationslinks = "<table cellspacing=\"1\" cellpadding=\"0\" border=\"0\" class=\"sitenav\"><tr><td>Seite: $aktuelle_seite von $gesamtseiten</td> $seitenlink</tr></table>"; 
} 

return $navigationslinks; 
} 
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # 
?>

PS:
Hier im Forum ist übrigens nahezu die gleiche Blätterfunktion integriert sehe ich gerade...
Und auch hier habe ich wohl in den letzten Monaten so ziemlich alle Beiträge (~100-140 lol) zum Thema Blättern bereits studiert, u.a. auch diese beiden Tuts:

http://www.tutorials.de/forum/php-tutorials/257602-blaetterfunktion.html
http://www.tutorials.de/forum/php-t...on-mit-button-navigator-und-suchfunktion.html

Aber auch hier fand ich keinen Lösungsansatz wie ich meine Seitennummerierungen dazu bewegen kann sich mit den URL´s meiner einzelnen Seiten zu verknüpfen - oder verstehe ich das Ganze viell. nur nicht :confused:

Bitte helft mir ;)
 

Anhänge

  • blaettern1.jpg
    blaettern1.jpg
    41,9 KB · Aufrufe: 228

Gumbo

Erfahrenes Mitglied
Die meisten Blätterfunktionen sind tatsächlich an eine Datenbank gebunden, da es nur eine fortlaufende Seitennummerierung gibt. Auch der Algorithmus der meisten Blätterfunktion unterscheiden sich oft nicht groß, da viele zwar der Meinung sind, sich selbst eine Blätterfunktion schreiben zu müssen, aber im Endeffekt doch nur bei anderen abschreiben.

Wenn ich dich nun richtig verstanden habe, möchtest du „statische Seiten“ miteinander über die Blätterfunktion verknüpfen. Prinzipiell ist das möglich. Wenn du etwa alle Seiten in einem zentralen Array sammelst, können diese einfach nacheinander durchgegangen werden.
 

girlie

Grünschnabel
Wenn ich dich nun richtig verstanden habe, möchtest du „statische Seiten“ miteinander über die Blätterfunktion verknüpfen. Prinzipiell ist das möglich. Wenn du etwa alle Seiten in einem zentralen Array sammelst, können diese einfach nacheinander durchgegangen werden.
Ja, so meine ich das. Kann ich mein obiges Script entsprechend abändern? Und falls "Ja", wie konkret muss ich das dann ändern? (Ich weiß zudem auch nicht wie ich so ein zentrales Array erstellen kann)
 

-GS-Master

Erfahrenes Mitglied
Sei doch so gut und setz den Link zu deinem Script hier rein -.-
Möchte sehen wie weit du bis jetzt bist ... das mit den Seiten kann ich mir dann auch besser vorstellen -.-

versuche mich jetzt im Lesen deines Romans :suspekt:
 

girlie

Grünschnabel
^Öhm, sorry - aber mein Script ist doch bereits vollständig in meinem Eröffnungspost integriert! Hast Du das etwa übersehen? *verdudstguckt*
 

-GS-Master

Erfahrenes Mitglied
Nein meinte eigentlich im internet -.-
Deinen Code habe ich schon gesehen ...
Nur wenn ich es sehe dann fällt mir das ganze leichter ^^ vor allem das "rein"Denken in den code
 

girlie

Grünschnabel
Im Internet habe ich das doch noch gar nicht drin! Eben aus dem Grund, weil ich das mit dem Script ja nicht hinbekomme. Derzeit habe ich alles nur auf meinem PC (sprich das Script, meine div. Test Gallerie-Seiten, die Datenbank-Dateien etc.) und probiere/teste dort alles "offline" via XAMPP (inkl. mysql etc.)
 
Zuletzt bearbeitet:

girlie

Grünschnabel
Ich bin mittlerweile meinem Ziel leider noch keinen Schritt nähergekommen, verflixt. Aber irgendwie muss doch die von mir gewünschte Funktion realisierbar sein und zwar 'ohne' das man dazu gleich der kompletten PHP-Programmiersprache mächtig ist, denn in jedem Forum (inkl. diesem hier) u. auf allen Suchmaschinen-Seiten sehe ich doch genau, dass das was mir vorschwebt umzusetzen 100% machbar ist. Da mir in diesem Forum hier anscheinend ja aber niemand diesbezüglich weiterhelfen kann, mutmaße ich einmal das dann die Umprogrammierung meines Scriptes wohl doch eine kompliziertere 'Expertenangelegenheit' sein dürfte!? :confused:

Da ich nun schon seit einigen 'Monaten' absolut erfolglos an der Sache rumtüftele, kehrt allmählich die große Verzweiflung bei mir ein - *seufz* Denn bislang habe ich immer alles was ich so für meine HP haben wollte, durch Hilfe aus dem Inet, auch irgendwie hinbekommen. Nur diese Blätterfunktion jetzt nicht <-> aber 'neiiin', ich will nicht ausgerechnet daran gänzlich scheitern! Ich denke irgendwo in der großen weiten Welt des WWW´s liegt bestimmt auch die Lösung für dieses Poblemchen bereit - nur wo? Aber da ich ja bereits soviele div. Foren etc. zum Thema Blätterfunktion durchforstet habe, bin ich selber diesbezüglich ratlos :( Deshalb meine Frage: kennt von Euch jemand vielleicht noch ein gutes 'Experten'-Forum zum Thema das mich eventuell weiterbringen könnte? Der entsprechende Link dann dorthin wäre sehr nett...
 

Gumbo

Erfahrenes Mitglied
Hier ein einfaches Beispiel meines Vorschlags:
PHP:
$array = array(
	'/foo',
	'/bar',
	…
);

$_GET['seite'] = !empty($_GET['seite']) ? abs(intval($_GET['seite'])) : 1;
if( isset($array[$_GET['seite']-1]) ) {
	include $array[$_GET['seite']-1];
}

if( isset($array[$_GET['seite']-2]) ) {
	echo '<a href="?seite='.($_GET['seite']-2).'">vorherige Seite</a>';
}
foreach( $array as $key => $value ) {
	if( $key !== $_GET['seite'] ) {
		echo '<a href="?seite='.$key.'">Seite '.$key.'</a>';
	} else {
		echo $key;
	}
}
if( isset($array[$_GET['seite']]) ) {
	echo '<a href="?seite='.($_GET['seite']).'">nächste Seite</a>';
}