Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP nach xxx ausgaben neue seite

Empfohlene Antworten

Veröffentlicht

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:

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.

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...

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.