分页前置-下一个增量


Pagination Prev - Next Increment

我创建了一个PHP新闻系统,但是我有一个问题:

<?php
include('config.php');
if( isset( $_GET["page"]) ) $PAGE=$_GET["page"]; else $PAGE=1;
$query1=mysql_query("select id, name, email , age from addd LIMIT ". (($PAGE * 5) - 5) .",5");
echo "<table><tr><td>Testo</td><td>Nome</td><td>Anni</td></tr>";
function truncate_string($str, $length) {
if (!(strlen($query2['name']) <= $length)) {
    $query2['name'] = substr($query2['name'], 0, strpos($query2['name'], ' ', $length)) . '...';
}
return $query2['name'];
}
while($query2=mysql_fetch_array($query1))
{
$number= $query2['name'];
echo "<tr><td>".substr($query2['name'], 0, 500)."...</td>";
echo "<td>".$query2['email']."</td>";
echo "<td>".$query2['age']."</td>";
echo "<td>".str_word_count($number)."</td>";
echo "<td><a href='edit.php?id=".$query2['id']."'>Mod</a></td>";
echo "<td><a href='delete.php?id=".$query2['id']."' onclick='"return confirm('Sei sicuro di volerlo eliminare?');'");'>Canc</a></td><tr>";
echo "<td><a href='singletwo.php?id=".$query2['id']."');'>vedi</a></td<tr>";
}
?>

页遵循以下编号:?page=1, ?page=2 ecc.

每页5条新闻

如何创建自动分页系统?

与前一个下一个,自动检测可能的下一个或上一个页面?

我不知道该怎么做。

从变量的最大长度和总行数开始:

<?php
include('config.php');
$max = 5;
$total = mysql_query("select count(*) from addd");
$PAGE = isset($_GET["page"]) ? $_GET["page"] : 1;
$query1 = mysql_query("select id, name, email , age from addd LIMIT " . (($PAGE * $max) - $max) . "," . $max);

这样,你就可以计算出你需要多少页。

下面的代码会给你一个页面列表(第1页,第2页,第3页等):

for($i = 0; $i < ceil($total / $max); $i ++)
{
    $p = $i + 1;
    echo '<a href="?page=' . $p . '">Page ' . $p . '</a>';
}

如果你想要上一页和下一页的链接,试试这个:

if($PAGE > 1)
    echo '<a href="?page=' . ($PAGE - 1) . '>Previous</a>';
if(ceil($total / $max) > $PAGE)
    echo '<a href="?page=' . ($PAGE + 1) . '>Next</a>';

你可以这样做:

$currentPage = isset($_GET['page']) ? $_GET['page'] : 1;
$limit = $currentPage*5;
$offset = $offset-5;

现在你有了这些数字,你可以在你的查询中使用它们:

$stmt = "SELECT
...
FROM news
LIMIT ".$offset.", ".$limit.";

这样你就能得到你想要的唱片。至于下一个和上一个按钮:

if ($currentPage > 1) {
    // Show previous button
}

对于下一个按钮,您需要执行另一个查询:

$stmt = "SELECT COUNT(*) as total FROM news";
$result = $pdo->fetch();
$totalRows = $result['total'];
if ($currentPage < round($totalRows/5)) {
    // Show next button
}