Php 网站上的记录集导航问题

Php 网站上的记录集导航问题,php,html,sql,navigation,recordset,Php,Html,Sql,Navigation,Recordset,我正在制作一个动态博客,它从SQL数据库中提取帖子,我尝试添加一些记录集导航,但当我按下“下一步”时,它不会翻阅帖子。 这是本页SQL部分的编码: mysql_select_db($database_blog, $blog); $query_getArchives = "SELECT DISTINCT DATE_FORMAT(news.updated, '%M %Y') AS archive, DATE_FORMAT(news.updated, '%Y-%m') AS link FROM new

我正在制作一个动态博客,它从SQL数据库中提取帖子,我尝试添加一些记录集导航,但当我按下“下一步”时,它不会翻阅帖子。 这是本页SQL部分的编码:

mysql_select_db($database_blog, $blog);
$query_getArchives = "SELECT DISTINCT DATE_FORMAT(news.updated, '%M %Y') AS archive, DATE_FORMAT(news.updated, '%Y-%m') AS link FROM news ORDER BY news.updated DESC";
$getArchives = mysql_query($query_getArchives, $blog) or die(mysql_error());
$row_getArchives = mysql_fetch_assoc($getArchives);
$totalRows_getArchives = mysql_num_rows($getArchives);

mysql_select_db($database_blog, $blog);
$query_getRecent = "SELECT news.post_id, news.title FROM news ORDER BY news.updated DESC LIMIT 10";
$getRecent = mysql_query($query_getRecent, $blog) or die(mysql_error());
$row_getRecent = mysql_fetch_assoc($getRecent);
$totalRows_getRecent = mysql_num_rows($getRecent);

$maxRows_getDisplay = 10;
$pageNum_getDisplay = 0;
if (isset($_GET['pageNum_getDisplay'])) {
  $pageNum_getDisplay = $_GET['pageNum_getDisplay'];
}
$startRow_getDisplay = $pageNum_getDisplay * $maxRows_getDisplay;

mysql_select_db($database_blog, $blog);
$query_getDisplay = "SELECT news.title, news.pre,  DATE_FORMAT(news.updated, '%M %e, %Y') AS formatted FROM news ORDER BY news.updated DESC";
$query_limit_getDisplay = sprintf("%s LIMIT %d, %d", $query_getDisplay, $startRow_getDisplay, $maxRows_getDisplay);
$getDisplay = mysql_query($query_limit_getDisplay, $blog) or die(mysql_error());
$row_getDisplay = mysql_fetch_assoc($getDisplay);

if (isset($_GET['totalRows_getDisplay'])) {
  $totalRows_getDisplay = $_GET['totalRows_getDisplay'];
} else {
  $all_getDisplay = mysql_query($query_getDisplay);
  $totalRows_getDisplay = mysql_num_rows($all_getDisplay);
}
$totalPages_getDisplay = ceil($totalRows_getDisplay/$maxRows_getDisplay)-1;

$queryString_getDisplay = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_getDisplay") == false && 
        stristr($param, "totalRows_getDisplay") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_getDisplay = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_getDisplay = sprintf("&totalRows_getDisplay=%d%s", $totalRows_getDisplay, $queryString_getDisplay);



$var1_getDisplay2 = "-1";
if (isset($_GET['archive'])) {
  $var1_getDisplay2 = $_GET['archive'];
  $query_getDisplay = sprintf("SELECT news.title, news.blog_entry, DATE_FORMAT(news.updated, '%%M %%e, %%Y') AS formatted FROM news WHERE DATE_FORMAT(news.updated, '%%Y-%%m') = %s ORDER BY news.updated DESC", GetSQLValueString($var1_getDisplay2, "text"));
} elseif (isset($_GET['post_id'])) {
  $var2_getDisplay3 = $_GET['post_id'];
  $query_getDisplay = sprintf("SELECT news.title, news.blog_entry, DATE_FORMAT(news.updated, '%%M %%e, %%Y') AS formatted FROM news WHERE news.post_id = %s", GetSQLValueString($var2_getDisplay3, "int"));
} else {
  $query_getDisplay = "SELECT news.title, news.blog_entry, DATE_FORMAT(news.updated, '%M %e, %Y') AS formatted FROM news ORDER BY news.updated DESC LIMIT 2";
}
$getDisplay = mysql_query($query_getDisplay, $blog) or die(mysql_error());
$row_getDisplay = mysql_fetch_assoc($getDisplay);
$totalRows_getDisplay = mysql_num_rows($getDisplay);
这是记录集代码:

  <div id="blog_posts_container">
  <h3><?php echo $row_getDisplay['title']; ?></h3>
  <p class="update">Posted on <?php echo $row_getDisplay['formatted']; ?></p>
  <div class="blog_entry" id="blog_posts">
    <p><?php echo nl2br($row_getDisplay['blog_entry']); ?></p>
  </div></div>
  <?php } while ($row_getDisplay = mysql_fetch_assoc($getDisplay)); ?>
  <div id="blog_posts_container">
    <table border="0">
      <tr>
        <td><?php if ($pageNum_getDisplay > 0) { // Show if not first page ?>
            <a href="<?php printf("%s?pageNum_getDisplay=%d%s", $currentPage, 0, $queryString_getDisplay); ?>">First</a>
            <?php } // Show if not first page ?></td>
        <td><?php if ($pageNum_getDisplay > 0) { // Show if not first page ?>
            <a href="<?php printf("%s?pageNum_getDisplay=%d%s", $currentPage, max(0, $pageNum_getDisplay - 1), $queryString_getDisplay); ?>">Previous</a>
            <?php } // Show if not first page ?></td>
        <td><?php if ($pageNum_getDisplay < $totalPages_getDisplay) { // Show if not last page ?>
            <a href="<?php printf("%s?pageNum_getDisplay=%d%s", $currentPage, min($totalPages_getDisplay, $pageNum_getDisplay + 1), $queryString_getDisplay); ?>">Next</a>
            <?php } // Show if not last page ?></td>
        <td><?php if ($pageNum_getDisplay < $totalPages_getDisplay) { // Show if not last page ?>
            <a href="<?php printf("%s?pageNum_getDisplay=%d%s", $currentPage, $totalPages_getDisplay, $queryString_getDisplay); ?>">Last</a>
            <?php } // Show if not last page ?></td>
      </tr>
    </table>
  </div>

发布于


它看起来和我以前的页面一样,记录集导航栏在那里工作,但由于某种原因,它现在不工作了

如果每次单击链接都会收到相同的两篇博客文章,那是因为你没有更改你的。试着把它改成-

} else {
$query_getDisplay = "SELECT news.title, news.blog_entry, DATE_FORMAT(news.updated, '%M %e, %Y') AS formatted FROM news ORDER BY news.updated DESC LIMIT ".$pageNum_getDisplay.", 2";
}

请详细说明“它现在不起作用”。是只有
下一个
不起作用,还是所有的链接都不起作用?很抱歉没有正确解释。我的意思是,我按下“下一步”或任何一个按钮,它会像应该的那样加载一个新页面,但会停留在第一页的两篇博文上!PHP的下一个主要版本是弃用
mysql\uz
函数系列。现在正是学习or的好时机。谢谢,那最好开始学习。我只知道用Dreamweaver编写的SQL代码是如何生成的。谢谢,但现在当我按下“下一步”按钮时,第二篇文章将成为顶部的文章,而下面会出现一篇新的文章,这是一个非常酷的效果,但我希望它显示接下来的两篇文章,而不仅仅是每页下一篇文章。这是因为你的链接只增加/减少了1-
max(0,$pageNum\u getDisplay-1)
&
min($totalPages\u getDisplay,$pageNum\u getDisplay+1)
。解决此问题的最简单方法是将它们更改为2-
max(0,$pageNum\u getDisplay-2)
min($totalPages\u getDisplay,$pageNum\u getDisplay+2)
。它成功了,但我的博客中有大约84篇帖子,它只通过“下一步”和“上一步”按钮循环浏览其中的10篇