Blätterfunktion
| Verfasst am: 26. 09. 2010 [21:18] | |||
| Gelöschter Benutzer | Beitrag hilfreich? | ||
| Hallo zusammen! Ich habe im Web ein Script zum Blättern gefunden und in meine Buch-Archiv-Geschichte per include eingebaut und angepasst. PHP mysql_select_db('140_archiv', $db);
$sql = "select id from Tabelle1";
if (!isset($_REQUEST['Total']))
{
$result = mysql_query($sql);
$Total = mysql_num_rows($result);
unset($result);
}
else
{
$Total = $_REQUEST['Total'];
}
if (!isset($_REQUEST['Seite']))
{
$Seite = 1;
}
else
{
$Seite = $_REQUEST['Seite'];
}
if ($Seite > $Total) $Seite = $Total;
$ProSeite = 10;
$LinksZahl = 7;
$SeitenZahl = ceil($Total/$ProSeite);
if ($LinksZahl % 2 == 0) $LinksZahl++;
$NumerischeLinks = ($LinksZahl - 1) / 2;
$url = $_SERVER['PHP_SELF'];
$sql .= " limit ". ($Seite * $ProSeite - $ProSeite) .", ".$ProSeite;
$result = mysql_query($sql);
mysql_close($db);
$AuslassungszeichenVorn = '';
$AuslassungszeichenHinten = '';
$AnfangLink = '';
$EndeLink = '';
$ZurueckLink = '';
$WeiterLink = '';
$SichtbareLinks = '';
if ($SeitenZahl > 1)
{
$Nr = $Seite - $NumerischeLinks;
$Anzeige = 0;
while ($Nr <= $SeitenZahl)
{
if ($Nr < 1) {$Nr++; continue;}
elseif ($Nr > $Seite + $NumerischeLinks) {break;}
if ($Nr == $Seite) {$SichtbareLinks .= " $Nr";}
else {$SichtbareLinks .= ' <a href="'.$url.'?Seite='.$Nr.'&Total='.$Total.'">'.$Nr.'</a>';}
$Nr++;
$Anzeige++;
}
}
if ($Seite > 1)
{
$AnfangLink = ' <a href="'.$url.'?Seite=1&Total='.$Total.'">Anfang</a>';
if ($Seite - 1 > 1)
{
$ZurueckLink = ' <a href="'.$url.'?Seite='.($Seite-1).'&Total='.$Total.'">Zurck</a>';
}
}
if ($Seite < $SeitenZahl)
{
$EndeLink = ' <a href="'.$url.'?Seite='.$SeitenZahl.'&Total='.$Total.'">Ende</a>';
if ($Seite + 1 < $SeitenZahl)
{
$WeiterLink = ' <a href="'.$url.'?Seite='.($Seite+1).'&Total='.$Total.'">Weiter</a>';
}
}
if ($Seite - $NumerischeLinks > 1)
{
$AuslassungszeichenVorn = ' ...';
}
if ($Seite + $NumerischeLinks < $SeitenZahl)
{
$AuslassungszeichenHinten = ' ...';
}
$Nav = $AnfangLink;
$Nav .= $ZurueckLink;
$Nav .= $AuslassungszeichenVorn;
$Nav .= $SichtbareLinks;
$Nav .= $AuslassungszeichenHinten;
$Nav .= $WeiterLink;
$Nav .= $EndeLink;
print $Nav;
if ($SeitenZahl > $Anzeige)
{
print "Seiten: $SeitenZahl Gehe zu Seite ";
echo '
<form action="'.$url.'" method="post">
<input type="text" size="3" name="Seite"></input>
<input type="submit" value="Los"></input>
<input type="hidden" name="Total" value="'.$Total.'"></input>
</form>
';
}Das funktioniert ja auch soweit, wie man am Ende der verlinkten Seite sehen kann. Nur leider werden nicht die gesetzten 10 Datensätze angezeigt, sondern wie man sieht alle. Nun ist das nicht so, das ich die Logik im Script nicht verstehe. Was mir bezüglich php fehlt, ist das Wissen über die Syntax. Ich schätze mal, das die leeren Teile einiger DS hier das Problem sind Für evtl. aufs Problem aufmerksam machen bedanke ich mich schon mal im voraus. Gruß Marcus [Dieser Beitrag wurde 2mal bearbeitet, zuletzt am 26.09.2010 um 21:20.] | |||
| Verfasst am: 26. 09. 2010 [21:40] | |||
Raptor Dabei seit: 10.05.2009 ![]() 1159 Beiträge | Beitrag hilfreich? | ||
| Sali, ich hatte selbst mal eine solche Paginator-Funktion für 3 verschiedene Datentypen geschrieben: http://floern.com/webscripting/paginator Vielleicht nützt dir das was. | |||
| Verfasst am: 26. 09. 2010 [22:02] | |||
Ultima Dabei seit: 09.07.2010 ![]() 759 Beiträge | Beitrag hilfreich? | ||
| Beide Code Beispiele sind ziemlich schlecht, allein schon wegen diesen stellen: SQL SELECT id FROM Tabelle1; SELECT * FROM tabelle WHERE spalte='iwas' ORDER BY iwas Stellt euch da mal eine richtige Tabelle vor mit mehr als 1.000 Einträgen. Ihr würdet immer alles abfragen obwohl ihr nur 10 DS braucht, sowas geht gar nicht. Dadurch würde eine Datenmenge Transferiert die die Seite extrem verlangsamt und sogar zum Absturz des Server führen kann, das hab ich sogar schon mal erlebt. Die Schuld wurde einen DDos Angiff gegeben, dabei war es der Betreiber selbst. Mein Portal: Ultima-Project.net - Gold für alle | |||
| Verfasst am: 26. 09. 2010 [23:07] | |||
Matthes Dabei seit: 08.05.2010 ![]() 174 Beiträge | Beitrag hilfreich? | ||
| Ultimas Einwand ist berechtigt, ich nutze folgendes und denke, das ist wesentlich besser: PHP $seite = (!empty($_GET['seite'])) ? (int) $_GET['seite'] : 1)-1; //Seitenzahl, erste Seite = 0
$anzeige = 10; //anzuzeigende Einträge pro Seite;
$erg=$db->query('SELECT SQL_CALC_FOUND_ROWS spalte
FROM tabelle
ORDER BY spalte LIMIT '.$seite*$anzeige.','.$anzeige); //gibt nur $anzeige Zeilen zurück
$gesamtzahlEintraege=$db->query('SELECT FOUND_ROWS();'); //enthält die Gesamtzahl der Zeilen der Abfrage
//Einträge ausgeben
mach dies, tu jenes
//Seitenausgeben
$anzahlSeiten=ceil($gesamtzahlEintraege/$anzeige);
//Links zu den Seiten ausgeben Mal: "May have been the losing side. Still not convinced it was the wrong one." | |||
| Verfasst am: 26. 09. 2010 [23:44] | |||
Ultima Dabei seit: 09.07.2010 ![]() 759 Beiträge | Beitrag hilfreich? | ||
| Es ist wesentlich besser. Es wird genau das abgefragt was benötigt wird. Und eine noch bessere Lösung als SQL_CALC_FOUND_ROWS hab ich bisher noch nie gesehen. [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 26.09.2010 um 23:44.] Mein Portal: Ultima-Project.net - Gold für alle | |||
| Verfasst am: 27. 09. 2010 [22:50] | |||
UFOMelkor Dabei seit: 20.10.2009 ![]() 348 Beiträge | Beitrag hilfreich? | ||
| Aber auch nicht immer empfehlenswert: http://www.mysqlperformanceblog.com/2007/08/28/to-sql_calc_found_rows-or-not-to-sql_calc_found_rows/ http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/ Allheilmittel gibt es in der Informatik halt leider nicht. | |||
Du bist nicht eingeloggt. Bitte beachte, dass Du eingeloggt sein musst, um Themen zu erstellen oder auf Beiträge zu antworten.
Werde in Echtzeit über neue Foren-Beiträge informiert:
2 Mitglieder waren innerhalb der letzten 15 Minuten online (40 heute gesamt):
romacron, wodadt
Administratoren und Moderatoren:
[keine]
Seitenreport hat 18153 registrierte Mitglieder, 3003 Themen und 29112 Beiträge.
Der aktuelle Mitgliederzuwachs liegt bei durchschnittlich 12 bestätigten Neuregistrierungen pro Tag.
Pro Tag werden im Seitenreport Forum durchschnittlich 1 neues Thema und 7 Beiträge erstellt.
Die Durchschnittszahlen berechnen sich aus den letzten 7 Tagen.

Lade...
Neueste Foren-Beiträge
| Abstimmung: 20.000 Mitglieder Jubiläum - was tun? Internes & Ankündigungen / Internes | Gestern [23:07] | |
| Microsofts soziales Netzwerk So.cl Internet / News | Gestern [20:03] | |
| Nicht nachvollziehbarer CSS Fehler Internes & Ankündigungen / Analyse-Ergebnisse | Gestern [13:37] | |
| Partnerprogramm: Eintrag für Kunden erledigt Internes & Ankündigungen / Internes | 22. 05. 2012 [10:35] | |
| Hotelbericht Entwickler Treffpunkt / Website vorstellen | 22. 05. 2012 [09:28] |
Lade...
Aktuelle Artikel:
Facebook - eine neue Tech-Blase?
Facebook ist in den vergangenen Tagen wegen seines Börsenganges und den dabei eingefahrenen Investorengeldern von 16 Milliarden Dollar großflächig in die Kritik geraten. Der Marktwert von 104 Milliarden Dollar wird von vielen als maßlos übertrieben angesehen. Ist Facebook eine neue Internet-Blase, die in den nächsten Jahren platzen wird?
Suchmaschinenoptimierung seit dem Google Penguin Update
Das neue Update vom Branchenriesen Google wird in Seo-Kreisen gerne mit einem Erdbeben verglichen. Diese Metapher trifft die Sachlage sehr gut, denn der Pinguin bringt die Arbeitsfundamente der Suchmaschinenoptimierer gehörig ins Wanken.
Tipps für den guten Start ins Business
Sich selbstständig machen, eine Firma gründen und direkt ins eigenständige Berufsleben einzusteigen klingt spannend und irgendwie auch einfach. Doch einfach ist es ganz und gar nicht...
Facebook - eine neue Tech-Blase?
Facebook ist in den vergangenen Tagen wegen seines Börsenganges und den dabei eingefahrenen Investorengeldern von 16 Milliarden Dollar großflächig in die Kritik geraten. Der Marktwert von 104 Milliarden Dollar wird von vielen als maßlos übertrieben angesehen. Ist Facebook eine neue Internet-Blase, die in den nächsten Jahren platzen wird?
18. Mai 2012
Suchmaschinenoptimierung seit dem Google Penguin Update
Das neue Update vom Branchenriesen Google wird in Seo-Kreisen gerne mit einem Erdbeben verglichen. Diese Metapher trifft die Sachlage sehr gut, denn der Pinguin bringt die Arbeitsfundamente der Suchmaschinenoptimierer gehörig ins Wanken.
15. Mai 2012
Tipps für den guten Start ins Business
Sich selbstständig machen, eine Firma gründen und direkt ins eigenständige Berufsleben einzusteigen klingt spannend und irgendwie auch einfach. Doch einfach ist es ganz und gar nicht...
14. Mai 2012



