Zum Inhalt springen

PHP nach xxx ausgaben neue seite


Empfohlene Beiträge

Hallo.

Wie kann ich nach einer bestimmten ausgabe von mysql datenwerten automatisch eine neue seite beginnen und am ende dieser seite autom. einen link zur nächsten platzieren... wie in den meisten gästebüchern ???

Danke schonmal im Vorraus für eure hilfe :floet:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmm ich denke du meinst das er praktisch pro Seite nur 10 Gästebucheinträge anzeigen soll und das

man am ende durch die jeweiligen seiten klicken kann?

Ich hab es einfach mit einem übergabe Parameter page=x gelöst.

sprich mysql soll einfach mittels limit (x*10)-10,10 pro seite nur 10 datensätze zurück liefern.

(ergibt für seite 1 -> limit 0,10, also die ersten 10 datensätze

für seite 2 -> limit 10,10, also die zweiten 10 datensätze)

Und am ende einfach gesamtzahl datensätze/10 seiten auswahlmöglichkeiten anzeigen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie kann ich nach einer bestimmten ausgabe von mysql datenwerten automatisch eine neue seite beginnen und am ende dieser seite autom. einen link zur nächsten platzieren... wie in den meisten gästebüchern ???

also automatisch geht schonmal garnix, zumindest für den Programmierer ;)

Hier mal ne Lösung von mir für dieses Problem:



/* Anzahl Zeilen der Tabelle, die pro Seite angezigt werden*/
$MaxLines = 5;

$CurPageNr = 1;

if (isset($_POST["submit"]))
$CurPageNr = $_POST["NewPage"];

$result = MYSQL_QUERY($Query, $db);
if ($result)
{
/* wieviele Datensätze */
$menge = mysql_num_rows($result);
/* maximale Seitenanzahl bestimmen */
$MaxNrPage = floor($menge/$MaxLines) + 1;
echo "<br><small>Insgesamt ".$MaxNrPage." Seiten | Aktuelle Seite = ".$CurPageNr."</small>";

/* ab welchen Datensatz soll angezeigt werden */
$StartIndex = ($CurPageNr* $MaxLines) - $MaxLines;
/* bis zu welchem Satz */
$EndIndex = ($CurPageNr* $MaxLines) -1;
if ($EndIndex > $menge-1)
{
$EndIndex = $menge-1;
}
# **********************************************************
# Ergebnis ausgeben

for ($i=$StartIndex;$i<=$EndIndex;$i++)
{
echo mysql_result($result,$i,0);
}

# ************************* First **************************
if ($CurPageNr != 1)
{
echo "<small><a href=\"".$_SERVER['PHP_SELF']."?NewPage=1&SB=".$Suchbegriff."&K=".$Kriterium."&S=".$Sort."\">First</a> | ";
}
else
{
echo "<small><s>First</s> | ";
}

# ************************* Previous ************************
if ($CurPageNr==1)
{
echo "<s>Previous</s> | ";
}
else
{
echo "<a href=\"".$_SERVER['PHP_SELF']."?NewPage=";
echo ($CurPageNr-1);
echo "&SB=".$Suchbegriff."&K=".$Kriterium."&S=".$Sort."\">Previous</a> | ";
}

# ************************* Next ****************************
if ($CurPageNr==$MaxNrPage)
{
echo "<s>Next</s> | ";
}
else
{
echo "<a href=\"".$_SERVER['PHP_SELF']."?NewPage=";
echo ($CurPageNr+1);
echo "&SB=".$Suchbegriff."&K=".$Kriterium."&S=".$Sort."\">Next</a> | ";
}

# ************************* Last ****************************
if ($CurPageNr != $MaxNrPage)
{
echo "<a href=\"".$_SERVER['PHP_SELF']."?NewPage=".$MaxNrPage."&SB=".$Suchbegriff."&K=".$Kriterium."&S=".$Sort."\">Last</a></small>";
}
else
{
echo "<s>Last</s></small>";
}

echo "<input type=\"hidden\" name=\"CurPage\" value=\"".$_POST["PageID"]."\">";

[/php]

mit mysql_result kannst du gezielt einen Datensatz aus dem Ergebnis auswählen. Die Datensätze gezielt abfragen ("SELECT * FROM tab WHERE ID >=5 AND ID < 15") ginge auch, allerdings fehlt dir dann die Maximale Anzahl Seiten und du kannst somit auch nicht bis zum Ende springen, es sei denn du bestimmst es einmalig und führst es dann mit.

Das ist nicht das komplette skript von mir (also daraus zusammen kopiert), hoffe aber es ist klar wie ich da vorgehe...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Oder so:


$lines = 10;

$page = isset($_REQUEST['page']) ? $_REQUEST['page'] : 0;

$sql = "SELECT CEIL( COUNT(*) / $lines ), COUNT(*) FROM guestbook";

if (!($res = mysql_query($sql)))
return false;

list($pages,$entrees)=mysql_fetch_row($res);
mysql_free_result($res);

$sql = "SELECT name, mail, text, DATEFORMAT('%d.%m.%y',date) FROM guestbook ORDER BY date DESC LIMIT ".($page*$lines).", $lines";

if (!($res = mysql_query($sql)))
return false;

while( list($name,$mail,$text,$date) = mysql_fetch_row($res))
echo ($mail?"<a href=\"mailto:$mail\">":"").$name.($mail?"</a>":"")."schrieb am $date:<br/>\n".htmlentities($text);
mysql_free_result($res);

for($a=0;$a<$pages;$a++)
echo ($a!=$page?"<a href='guestbook.php?page=$a'>[".($a+1)."]</a>":"(".($a+1).")");
[/PHP]

Der Unterschied zum obigen Beispiel ist der, dass hier nur genau die Datensätze ausgelesen werden, die auch benötigt werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...