ab 20 gästebuch einträge!!
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bedeuten
befehl
beispiel
beitrag
eintrag
email
erz
fehler
kennwort
kommentar
lager
limit
meinung
page
rangliste
result
seitenzahl
skript
variable
zeile
-
naja ich wollte es ihrgendwie hinbekommen das nach 20 gb eintr?ge man eine seite weiter muss um die alten eintr?ge anzuschauen.
damit das gb nicht soviel wird^^
w?re froh wenn mir jemand helfen w?rde -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
guck in den tuts nach da giebts me seiten tutroial hab leider aber grad den link net
-
Das kannst du mit LIMIT realisieren:
Du schreibst einfach
SELECT * FROM guestbook LIMIT 0,20
Und dann zeigt er dir nur die ersten 20 an (von Eintrag 0 bis Eintrag 20)
Eine Seite weiter mussst du halt die LIMIT Werte +20 nehmen.
edit: Lagerhaus hat schnelle Finger
Beitrag ge?ndert am 11.08.2005 18:42 von bladehunter -
kann ich das realiesieren das die seitenanzahl immer erweitert wird wenn ?ber 20 eintr?ge kommen ohne das alles selbst zu machen
-
Ich w?rd das so machen:
Die guestbook-seite nimmt eine get-Variable auf: guestbook.php?page=SEITENZAHL
Je nach Seitenzahl (z.B. 4) wird 20 mit 4 malgenommen = 80. Das ist die zweite Zahl beim Limit-Befehl die erste macht man dann so:
80 - 19
Brauchst du ein Skript?
MfG lagerhaus -
were nett wenn du mir das mal zeigen k?nntest an einem script
-
Also dann wolln wir mal:
<?
$page = $HTTP_GET_VARS["page"]; //Die get-Variable muss "page" hei?en!!
$limit2 = 20 * $page;
$limit1 = $page - 19;
//So, nun sind die Variablen definiert - jetzt m?ssen sie nur noch in die MySQL-Query
//Der MySQL-Befehl sieht so aus:
$result = mysql_query("SELECT spaltenname(n) FROM Tabellenname LIMIT $limit1 , $limit2 ");
?>
Das ist die Abfrage an der Datenbank. Nun m?ssen die Daten nat?rlich noch ausgegeben werden.
Bei R?ckfragen gerne fragen!
MfG lagerhaus -
raffe ich nicht sorrykannste mir das mal an meinem g?stebuch zeigen:
<div align="center"><u><font size="+1"><b>G?stebucheintr?ge</b></font></u></div><br><br>
<body text="#ffffff" bgcolor="#000000" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<form action="gbuch.php" method="post">
<?php
include("config.php");//includen von der datenbank
$linkID=mysql_connect("$dbhost","$mysqlname","$dbpass"); //(Server, Benutzer, Kennwort)
if (!$linkID)
die("Fehler bei mysql_connect #001".mysql_error());
//Datenbank ausw?hlen
$select=mysql_select_db("$dbname");
if (!$select)
die("Fehler bei mysql_connect #002".mysql_error());
//SQL-Anfrage erstellen
$sql="INSERT INTO gb_blacksoul (name,email,hpage,kommentar,datum,ip,mirc) VALUES ('$name','$email','$hpage','$kommentar','$datum','$ip','$mirc')";
/* Auslesen aus der Datenbank */
$sql="SELECT * FROM gb_blacksoul ORDER BY id DESC"; //Ausw?hlen der Datensicht
$resID=mysql_query ($sql,$linkID);
if (!$resID) echo "<h2>Select konnte nicht ausgef?hrt werden!</h2>".mysql_error();
//Auslesen zeilenweise
while ($zeile=mysql_fetch_array($resID,MYSQL_BOTH))
{
//echo "<hr><br>Erstellt von $zeile[name]<br>am $zeile[datum]<br><img src=\"email.gif\" alt=\"\" border=\"0\"><a href=\"mailto:$zeile[email]\">$zeile[email]</a><br><img src=\"home.gif\" alt=\"\" border=\"0\"><a href=\"$zeile[hpage]\">$zeile[hpage]</a><br> Kommentar: $zeile[kommentar]<br>";
$name = ("$zeile[name]");
$datum = ("$zeile[datum]");
$email = ("$zeile[email]");
$hpage = ("$zeile[hpage]");
$kommentar = ("$zeile[kommentar]");
$mirc = ("$zeile[mirc]");
echo"<table border=\1\ width=\"500\">
<tr>
<td width=\"270\"> Erstellt von $name <br>am $datum<br><img src=\"gb/email.gif\" alt=\"\" border=\"0\"><a href=\"mailto:$email\">$email</a><br><img src=\"gb/home.gif\" alt=\"\" border=\"0\"><a href=\"$hpage\">$hpage</a><br><img src=\"gb/mirc.gif\" alt=\"\" border=\"0\">#<a href=\"irc://irc.quakenet.org/$mirc\">$mirc</a> </td>
<td width=\"\">$kommentar<br></td> <br>
</tr>
</table>";
}
echo"<table border=\1\ width=\"500\">
<tr>
<td><div align=\"center\"><a href=\"http://blackfiredoor.com\">? by Blacksoul (L:B) BlackFireDoor</a></div> </td>
</tr>
</table>";
//Datenbankverbindung beenden
mysql_close($linkID);
?> -
raffe ich nicht sorrykannste mir das mal an meinem g?stebuch zeigen:
<div align="center"><u><font size="+1"><b>G?stebucheintr?ge</b></font></u></div><br><br>
<body text="#ffffff" bgcolor="#000000" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<form action="gbuch.php" method="post">
<?php
include("config.php");//includen von der datenbank
$linkID=mysql_connect("$dbhost","$mysqlname","$dbpass"); //(Server, Benutzer, Kennwort)
if (!$linkID)
die("Fehler bei mysql_connect #001".mysql_error());
//Datenbank ausw?hlen
$select=mysql_select_db("$dbname");
if (!$select)
die("Fehler bei mysql_connect #002".mysql_error());
//SQL-Anfrage erstellen
$sql="INSERT INTO gb_blacksoul (name,email,hpage,kommentar,datum,ip,mirc) VALUES ('$name','$email','$hpage','$kommentar','$datum','$ip','$mirc')";
/* Auslesen aus der Datenbank */
$page = $HTTP_GET_VARS["page"]; //Die get-Variable muss "page" hei?en!!
if(!$page) {
$page = 1;
}
$limit2 = 20 * $page;
$limit1 = $page - 19;
$sql="SELECT * FROM gb_blacksoul LIMIT $limit1 , $limit2 ORDER BY id DESC"; //Ausw?hlen der Datensicht
$resID=mysql_query ($sql,$linkID);
if (!$resID) echo "<h2>Select konnte nicht ausgef?hrt werden!</h2>".mysql_error();
//Auslesen zeilenweise
while ($zeile=mysql_fetch_array($resID,MYSQL_BOTH))
{
//echo "<hr><br>Erstellt von $zeile[name]<br>am $zeile[datum]<br><img src=\"email.gif\" alt=\"\" border=\"0\"><a href=\"mailto:$zeile[email]\">$zeile[email]</a><br><img src=\"home.gif\" alt=\"\" border=\"0\"><a href=\"$zeile[hpage]\">$zeile[hpage]</a><br> Kommentar: $zeile[kommentar]<br>";
$name = ("$zeile[name]");
$datum = ("$zeile[datum]");
$email = ("$zeile[email]");
$hpage = ("$zeile[hpage]");
$kommentar = ("$zeile[kommentar]");
$mirc = ("$zeile[mirc]");
echo"<table border=\1\ width=\"500\">
<tr>
<td width=\"270\"> Erstellt von $name <br>am $datum<br><img src=\"gb/email.gif\" alt=\"\" border=\"0\"><a href=\"mailto:$email\">$email</a><br><img src=\"gb/home.gif\" alt=\"\" border=\"0\"><a href=\"$hpage\">$hpage</a><br><img src=\"gb/mirc.gif\" alt=\"\" border=\"0\">#<a href=\"irc://irc.quakenet.org/$mirc\">$mirc</a> </td>
<td width=\"\">$kommentar<br></td> <br>
</tr>
</table>";
}
echo"<table border=\1\ width=\"500\">
<tr>
<td><div align=\"center\"><a href=\"http://blackfiredoor.com\">? by Blacksoul (L:B) BlackFireDoor</a></div> </td>
</tr>
</table>";
//Datenbankverbindung beenden
mysql_close($linkID);
?>
Also: Du musst dem G?stebuch-Skript eine Get-Variable geben, damit es funktioniert. Sonst baue ich es dir in dein Skript ein. Es m?sste so funktionieren. Ich schreibe noch ein "if" rein, dass du ohne Get-Variable zur ersten Seite kommst.
EDIT: Hab's schon wieder vergessen:
MfG lagerhaus
Beitrag ge?ndert am 11.08.2005 20:37 von lagerhaus -
<?
$page = $HTTP_GET_VARS["page"]; //Die get-Variable muss "page" hei?en!!
$limit2 = 20 * $page;
$limit1 = $page - 19;
//So, nun sind die Variablen definiert - jetzt m?ssen sie nur noch in die MySQL-Query
//Der MySQL-Befehl sieht so aus:
$result = mysql_query("SELECT spaltenname(n) FROM Tabellenname LIMIT $limit1 , $limit2 ");
?>
Sry, aber ich meine da ist ein Fehler drin.
M?sste es nicht so hei?en?
Wenn du 19 von $page abziehst macht das einfach keinen Sinn.
$page = $HTTP_GET_VARS["page"]; //Die get-Variable muss "page" hei?en!! $limit2 = 20 * $page; $limit1 = $limit2 - 19; //So, nun sind die Variablen definiert - jetzt m?ssen sie nur noch in die MySQL-Query //Der MySQL-Befehl sieht so aus: $result = mysql_query ("SELECT spaltenname(n) FROM Tabellenname LIMIT $limit1 , $limit2 ");
MfG Dagar
Beitrag ge?ndert am 12.08.2005 09:01 von dagar888 -
$page = $HTTP_GET_VARS["page"]; //Die get-Variable muss "page" hei?en!! $limit2 = 20 * $page; $limit1 = $limit2 - 19; //So, nun sind die Variablen definiert - jetzt m?ssen sie nur noch in die MySQL-Query //Der MySQL-Befehl sieht so aus: $result = mysql_query ("SELECT spaltenname(n) FROM Tabellenname LIMIT $limit1 , $limit2 ");
MfG Dagar
jo jungs, aber bin ich nun ganz daneben? das hier als $limit2 genommene, bleibt doch immer gleich, oder? denn mit jeden seitenwechsel, also immer ne seite h?her, w?rde sich auch die anzahl der angezeigtne datens?tze erh?hen. ich bin voll der meinung, das $limit2 immer eine konstante zahl sein muss, jenachdem vieviele datens?tze man anzeigen will.
also in diesem beispiel w?rden die angezeigten datens. so aussehen.
seite1 : 20
seite2 : 40
seite3 : 60
seite4 : 80
usw.....
so, das nu noch was von mir kommt, hier mal so, wie ich es bei mir selbst habe:
if ($page==""||$page==1){$lim=0;} //beide zeilen dr?ber: //falls keine page angegeben ist, //oder page = 1. damit keine //fehlermeldungen kommen. else{$lim = ($page-1)*40;} //wenn ne seite gegeben ist... echo "<center>"; $ergebnis=mysql_query("select * from DEINETABELLE LIMIT $lim, 20"); //hier werden nun [b][u]immer 20[/u][/b] datens?tze ausgegeben
ich hoffe ich bin nun nicht ganz daneben, und erz?hle hier richtige sachen...
mfg
Beitrag ge?ndert am 12.08.2005 12:00 von ranglisten -
ranglisten schrieb:
ich hoffe ich bin nun nicht ganz daneben, und erz?hle hier richtige sachen...
mfg
Ich bef?rchte, du liegst daneben.
Beispiel
... LIMIT 0,20");
Das gibt den Berecih welche Ergebnisse ausgegeben werden und zwar wie folgt:
]0;20]
Und hier kommen wir direkt zu dem n?chsten problem:
$limit2 = 20 * $page; $limit1 = $limit2 - 19;
Hier muss nicht das stehen sonder das:
$limit2 = 20 * $page; $limit1 = $limit2 - 20;
Begr?ndung/Beispiel:
Wir gehen davon aus, dass wir die zweite Seite aufrufen. D.h. wir wollen die Eintr?ge 21-40 angezeigt haben.
Wenn wir uns f?r den ersten Code(den mit -19) den Wertebereich angucken, sieht der wie folgt aus:
]21;40]
Das w?rde aber bedeuten, dass nur die Eintr?ge 22 bis 40 angezeigt w?rden. Der 21. Eintrag w?rde einfach ?bersprungen.
Deshalb bin ich der Meinung, dass man den zweiten Code benutzen muss.
Da w?re dann der Wertebereich ]20;40].
MfG Dagor -
ranglisten schrieb:
ich hoffe ich bin nun nicht ganz daneben, und erz?hle hier richtige sachen...
mfg
Ich bef?rchte, du liegst daneben.
Beispiel
... LIMIT 0,20");
Das gibt den Berecih welche Ergebnisse ausgegeben werden und zwar wie folgt:
]0;20]
Da stimme ich dir zu (hatte ich ja auch so gedacht
Und hier kommen wir direkt zu dem n?chsten problem:
$limit2 = 20 * $page; $limit1 = $limit2 - 19;
Hier muss nicht das stehen sonder das:
$limit2 = 20 * $page; $limit1 = $limit2 - 20;
Begr?ndung/Beispiel:
Wir gehen davon aus, dass wir die zweite Seite aufrufen. D.h. wir wollen die Eintr?ge 21-40 angezeigt haben.
Wenn wir uns f?r den ersten Code(den mit -19) den Wertebereich angucken, sieht der wie folgt aus:
]21;40]
Das w?rde aber bedeuten, dass nur die Eintr?ge 22 bis 40 angezeigt w?rden. Der 21. Eintrag w?rde einfach ?bersprungen.
Deshalb bin ich der Meinung, dass man den zweiten Code benutzen muss.
Da w?re dann der Wertebereich ]20;40].
MfG Dagor
Oh, ja! Da hast du recht! Statt der -19 muss es -20 hei?en! Sorry
MfG lagerhaus -
ranglisten schrieb:
ich hoffe ich bin nun nicht ganz daneben, und erz?hle hier richtige sachen...
mfg
Ich bef?rchte, du liegst daneben.
MfG Dagor
jo, dann schau dir mal das ganze in mysql an.
ich hab dort eine tabelle mit 305 zeilen.
ich gehe nun in dieser tabelle auf anzeigen.
dort hast du nun die option:
Zeige [Textfeld] Datens?tze, beginnend ab [textfeld]
gebe ich nun so ein, das ich 30 datens?tze sehen will, sieht das so aus.
Zeige 30 Datens?tze, beginnend ab 0
der dazu von php-myadmin erzeugte sql befehl sieht dazu so aus.
SELECT * FROM `cds` LIMIT 0 , [u]30[/u]
/////////////////////////////
will ich nun den bereich von pos. 180 sehen, und auch 30 eintr?ge sieht das so aus.
Zeige 30 Datens?tze, beginnend ab 180
der dazu erzeugte code:
SELECT * FROM `cds` LIMIT 180 , [u]30[/u]
wie du siehst, ist die dreisig (30) bei beiden die selbe, und die steht daf?r, wieviel eintr?ge gezeigt werden sollen, die zahl davor sagt, ab welcher position.....
ich bin der meinung, das ich (auch?!) recht habe, aber zwei unterschiedlicher sachen k?nnen ja nich den selben effekt haben.
mfg
-
Okay, ich habe es gerade ausprobiert.
Du hast Recht.
Sry, mein Fehler. Hab wohl beim meinem ersten Versuch einen Fehler gemacht. Ich fange hier nach sogar an dem zu zweifeln, was ich vorher geschrieben hab. K?nnte sein, dass das ganz gro?er quatsch ist.
Ich werde das nochmal ausprobieren. Es kann sein, dass ich beim ausprobieren der anderen Variante einen zu kleinen Zahlenberecih gew?hlt hab und so eine falsche Ges?tzm??igkeit abgeleitet hab.
Wenn ich das rausgefunden hab melde ich mich.
Also wie gesagt, sry.
MfG Dagor -
Sorry!
ranglisten hat Recht! Die erste Zahl lautet, ab wo die Datens?tze ausgelesen werden, der 2. Wert betr?gt die Anzahl.
Also wenn der 1. Wert 5 ist und der 2. 10
werden der 6., 7., 8., 9. 10. 11. 12. 13. 14. 15.
ausgelesen.
Skript?nderung:
$limit2 = 20;
$zahl = $page - 1;
$limit1 = $zahl * 20;
P.S.: @dagar 688 & ranglisten Lieber nochmal checken??
-
b?h ... wusst ich doch.. das ich recht hab...
@ dagar, is doch nix problem. irren ist menschlich..., passiert jedem mal...
jo, und so wie es lager nun zitiert hat, sollte es dann wohl stimmen, oder so, wie ich es in meinen vor-vor post beschrieben hab...
na dann....
viel spass noch..
@lager. was meinst du damit?
P.S.: @dagar 688 & ranglisten Lieber nochmal checken??
mfg
Beitrag ge?ndert am 12.08.2005 21:52 von ranglisten -
@lager. was meinst du damit?
P.S.: @dagar 688 & ranglisten Lieber nochmal checken??
?berpr?fen, dass es wirklich richtig ist.(Mein neues Skript) Ich hatte ja im ersten Skript den LIMIT-Fehler. Nicht dass da jetzt noch ein Fehler drin ist...
MfG lagerhaus
Beitrag ge?ndert am 12.08.2005 22:21 von lagerhaus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage