Seitenwechsel bei bestimmter Seitenlänge?
Christian
- php
0 Cheatah0 Sven Rautenberg
Hallo,
wie muss ich folgendes Skript modifizieren dass ab einer gewissen Anzahl von Datensätzen ein "Weiter"- bzw "zurück"-Button automatisch generiert wird?
<?php
$benutzer = "root";
$passwort = "";
$db = "testdb";
$link = mysql_connect( "localhost", $benutzer, $passwort );
if ( ! $link )
die( "Keine Verbindung zu MySQL" );
mysql_select_db( $db, $link )
or die ( "Konnte Datenbank "$db" nicht öffnen: ".mysql_error() );
$ergebnis = mysql_query( "SELECT * FROM domains" );
$anz_reihen = mysql_num_rows( $ergebnis );
print "Es sind zur Zeit $anz_reihen Datensätze in der Tabelle<P>";
print "<table border=1>\n";
while ( $datensatz = mysql_fetch_array( $ergebnis ) )
{
print "<tr>\n";
print "<td>$datensatz[name]</td><td>$datensatz[mail]</td><td>$datensatz[kommentar]</td>\n";
print "</tr>\n";
}
print "</table>\n";
mysql_close( $link );
?>
Danke im Voraus,
Christian
PS: Hab dem Beitrag weiter unten versehentlich die falsche Kategorie zugewiesen. Kommt nicht wieder vor.
Hi,
wie muss ich folgendes Skript modifizieren dass ab einer gewissen Anzahl von Datensätzen ein "Weiter"- bzw "zurück"-Button automatisch generiert wird?
was erwartest Du daraufhin für eine Antwort?
Überlege Dir, was gegeben sein muss. Du brauchst
Damit solltest Du erst mal arbeiten können.
Cheatah
Schon mal recht herzlichen Dank wegen dem Hinweis bezüglich der Limitierung. Das ist auch irgendwie logisch...
...
$ergebnis = mysql_query( "SELECT * FROM domains LIMIT 10" );
...
Aber wie die Links zu den anderen Seiten generiert werden sollen verstehe ich nicht
Hi,
$ergebnis = mysql_query( "SELECT * FROM domains LIMIT 10" );
die LIMIT-Klausel erlaubt noch einen weiteren Parameter, der Dir beim Blättern auf der zweiten Seite hilft.
Aber wie die Links zu den anderen Seiten generiert werden sollen verstehe ich nicht
Die anderen Seiten sind das selbe Script, nur mit einem Parameter, der dem Script sagt, wie die LIMIT-Klausel auszusehen hat (etwas verkürzt gesagt).
Cheatah
Moin!
Schon mal recht herzlichen Dank wegen dem Hinweis bezüglich der Limitierung. Das ist auch irgendwie logisch...
...
$ergebnis = mysql_query( "SELECT * FROM domains LIMIT 10" );
LIMIT kann auch zwei Parameter haben - die brauchst du auch.
Wenn du festlegst, 10 Einträge pro Seite auszugeben (es macht sich gut, das als Konstante irgendwo zu definieren), dann kannst du mit "LIMIT 1,10" d ab dem ersten Eintrag 10 Einträge erhalten. Die nächste Seite würde dann mit "LIMIT 11,10" zu kriegen sein, die danach mit "LIMIT 21,10" etc... Ich hoffe, du erkennst das Muster. Wenn du die ID des ersten Eintrages als Variable im Link hast, ist eigentlich schon alles gewonnen. Es müssen nur noch ein paar Checks erfolgen, daß du nicht "LIMIT -9,10" befiehlst (1 ist der kleinste Index, kleiner geht nicht), und aus Gründen der Einfachheit solltest du dir auch etwas überlegen, um nicht über das Ende der Liste hinauszuschießen.
- Sven Rautenberg
Moin!
wie muss ich folgendes Skript modifizieren dass ab einer gewissen Anzahl von Datensätzen ein "Weiter"- bzw "zurück"-Button automatisch generiert wird?
Wie Cheatah schon gesagt hat: Einige Dinge sind einzubauen. Primär mußt du die Masse an Datenbankergebnissen _limitieren_ (Zaunpfahl!). Und natürlich irgendeine Art von Link zur vorhergehenden und nachfolgenden Seite einbauen.
<?php
$benutzer = "root";
$passwort = "";
$db = "testdb";
$link = mysql_connect( "localhost", $benutzer, $passwort );
if ( ! $link )
die( "Keine Verbindung zu MySQL" );
mysql_select_db( $db, $link )
or die ( "Konnte Datenbank "$db" nicht öffnen: ".mysql_error() );
$ergebnis = mysql_query( "SELECT * FROM domains" );
//Hier limitieren.
$anz_reihen = mysql_num_rows( $ergebnis );
print "Es sind zur Zeit $anz_reihen Datensätze in der Tabelle<P>";
//Diese Angabe stimmt nicht mehr, wenn du limitierst.
print "<table border=1>\n";
while ( $datensatz = mysql_fetch_array( $ergebnis ) )
{
print "<tr>\n";
print "<td>$datensatz[name]</td><td>$datensatz[mail]</td><td>$datensatz[kommentar]</td>\n";
print "</tr>\n";
}
print "</table>\n";
mysql_close( $link );
//Link zur vorhergehenden und nachfolgenden Seite (bzw. wenn's einfacher ist, Link zum nachfolgenden und vorhergehenden Datensatz, direkt passend für's LIMIT-Statement) - aber nur, wenn's in diese Richtung noch weitergeht, sonst nicht.
?>
PS: Hab dem Beitrag weiter unten versehentlich die falsche Kategorie zugewiesen. Kommt nicht wieder vor.
Kein Problem, das ist soeben korrigiert worden.
- Sven Rautenberg