Php选择几行

时间:2014-12-14 19:50:19

标签: php

我编写了简单的PHP脚本来选择我的博客数据。 在这一刻,我在我的网站上有20个博客。它看起来不再好看了。 我想在1个网站上放置5个博客,其余的放在index.php?id = 2,3,4,5之类的。我正在寻找一些教程如何做到这一点。

<?php
$sql = mysql_query("SELECT * FROM blogData ORDER BY id DESC");
while($row = mysql_fetch_array($sql)){
$title = $row['title'];
$content = $row['content'];
$date = $row['date'];

?>
     
  <?php
}
?>

有人可以帮我吗?

3 个答案:

答案 0 :(得分:1)

如果您只想显示表格的5行,请使用:

$start = $_GET['id'] * 5;
$limit = 5;
$sql = mysql_query("SELECT * FROM blogData ORDER BY id DESC LIMIT $start,$limit");

您可以获取页码并在查询中使用。 (从行$ start开始并显示前5名。)

要进行分页,首先应该获取表中所有行的计数。然后把它分成5。 (例如,表格中的行数是141,而141/5 = 28。所以你有28页。)

你应该将PHP代码和HTML结合起来进行分页。

答案 1 :(得分:1)

假设您想要使用GET数组传递起始页 - 正如您所写的那样。

  1. 设置默认值:

    $pageNumber=0;
    $postsPerPage=5;
    
  2. 获取当前页面编号:

    $pageNumber=$isset($_GET['pn'])?:$pageNumber;
    
    //try to secure this value i.e:
    if(!is_numeric($pageNumber)) exit('Value not allowed');
    
  3. 制作SQL语句

    $startRow=$pageNumber*$postsPerPage;
    
    $sql = mysql_query("SELECT * FROM blogData ORDER BY id DESC LIMIT ".$startRow.",'.$postsPerPage);
    
    while($row = mysql_fetch_array($sql)){
        $title = $row['title'];
        $content = $row['content'];
        $date = $row['date'];
    
        //show your blog post as you want
    
    }
    
  4. 生成寻呼机:

    $sql = mysql_query("SELECT count(*) as total FROM blogData);
    $data=mysql_fetch_assoc($sql);
    $countBlogPosts=$data['total'];
    
        for($i=0;$<$countBlogPosts;$i++){
            if($i==$pageNumber){
                 echo $i+1;
            }else{
                 echo '<a href="/?pn='.$i.'" > '.($i+1).' </a>';
            }
            if($i<$countBlogPosts-1) echo "|";
        }
    
  5. 这应该有用。

答案 2 :(得分:0)

您要做的事情称为pagination

例如,在查询中进行更改非常简单:

SELECT * FROM blogData ORDER BY id DESC LIMIT :start, :end

因此,您只需设法在查询字符串中传递正确的值。

应该很简单,但是there are tons of tutorial on pagination