kleines mysql/php problem

tschimo

Mitglied
Hallo leute

Ich habe mir ein kleines Gästebuch programmiert:

Code:
<? include"dat/config.inc.php" ?>
<?php
$host = mysql_connect($server, $user, $pass); 
$anweisung = "SELECT * FROM gbook";
$querry = mysql_db_query ($database, $anweisung); 
$anzahl = mysql_num_rows($querry);
 

for ($i=0; $i<$anzahl; $i++)
{
 $benutzer = mysql_result($querry, $i, "benutzer");
 $email = mysql_result($querry, $i, "email");
 $link = mysql_result($querry, $i, "link"); 
 $datum = mysql_result($querry, $i, "datum");
 $beitrag = mysql_result($querry, $i, "beitrag");
 $anzahl = $i+1;

echo "<table align=center width=80% cellspacing=0 cellpadding=0>";
 echo "<tr>";
  echo "<td bgcolor=#CC6633> <p> Beitrag Nummer: $anzahl</p></td>";
 echo "</tr>";
 echo "<tr>";
  echo "<td bgcolor=#CC6633> <p><a href=mailto:$email>$benutzer</a> - $link </p></td>";
 echo "</tr>";
 echo "<tr>";
  echo "<td> <p>$beitrag </p></td>";
 echo "</tr>";

 echo "<tr>";
  echo "<td bgcolor=#CC6633><p>Geschrieben am: $datum</p></td>";
 echo "</tr>";
echo "</table>";
}
?>

Nun möchte ich eine Blätterfunktion einbauen, das heisst nur immer 10 Datensätze ausgeben.

Nun ich hab mir ein paar Gedanken dazu gemacht:

1:Mann könnte bei der Abfrage sagen alle IDs <10, auf der 2ten seite alle >10 & <20......
aber irgendwie weis ich nicht wie ich dies realisieren soll.

2: das auf der ersten seite "i" <10 ist und auf der 2ten Seite "i" >10 & <20

Mein Problem ist nun wie ich automatisch die Seiten erstellen kann.

Ich hoffe es kann mir jemand weiterhelfen.

Danke im voraus Gruss tschimo
 
Du kannst dafuer Dein SQL-Statement mit LIMIT ausstatten.
Diesem kannst Du die maximale Anzahl der auszulesenden Eintraege uebergeben und auch, hier sehr wichtig, einen Offset-Wert!
Siehe hier.
 
Code:
SELECT
 *
FROM
 gbook
WHERE
 num BETWEEN X AND Y

Wobei num eine durchlaufende Variable sein muss (als 1234)
Die id ist nicht empfehlenswert, vieleicht, nummerierst du sie extra noch
und X und Y sind halt deine grenzwerte zb 10 und 20 oder 0 und 10
 
Dennis Wronka hat gesagt.:
Du kannst dafuer Dein SQL-Statement mit LIMIT ausstatten.
Diesem kannst Du die maximale Anzahl der auszulesenden Eintraege uebergeben und auch, hier sehr wichtig, einen Offset-Wert!
Siehe hier.

Hallo Dennis

Danke für deinen Beitrag, dies mit der LIMIT Statement hab ich bereits verwendet, doch das problem ist das es mir danach nur z.B 10 datensätze ausgiebt , ich aber keine möglihkeit habe mit die anderen atensätze anzuschauen. ( Blätterfunktion)
 
und wennde beim weiterblättern einfach die nächste maximalgrenze mitschickst (per get), dann das minimum = max -10
und schon haste ne neue abfrage ohne irgendwelche infos der anderen beiträge zu brauchen
 
Du musst die Seitenzahl uebergeben.
Dann kannst Du das Offset so berechnen:
PHP:
$offset=($seite-1)*10;
Nach der Ausgabe holst Du Dir noch die Anzahl der Eintraege in der DB, also alle, und anhand dessen kannst Du die Links fuer die einzelnen Seitenzahlen erstellen.

Kleiner Tipp: :suchen:
Das Thema Blaetterfunktion gab es schon ein paar Tausend mal.

Und mal so ganz auf die Schnelle hab ich im Tutorial-Bereich 3 Threads gefunden die fuer Dich von Interesse sein koennten:
http://www.tutorials.de/tutorials182902.html
http://www.tutorials.de/tutorials152282.html
http://www.tutorials.de/tutorials180997.html
 
Zurück