显示返回的MySQL结果的有序数字

时间:2016-09-09 18:43:06

标签: php mysql

我有一个网页,我想在列表中显示PHP / MySQL结果,但我想在每个标题之前添加一个数字,例如:

  

01 ...第一篇文章的标题

     

02 ......第二篇文章的标题

这些将基于我从数据库中获得的结果数量。这是我获取列表的代码:

ERROR

如何让它显示01, 02, 03, etc代替$post_number

2 个答案:

答案 0 :(得分:2)

您需要声明一个计数器变量,以便我们可以跟踪每个循环并打印它。 $counter是我将在本例中使用的变量,我在循环之前声明它。

$post_numbers变量替换为$counter变量,并将其置于循环中,但在其结束时,我们需要将$counter变量增加1. {{ 1}}将在每次循环后增加,因此它将跟踪有多少记录。

$counter++

^对于每个循环,它会在你发布当前数字后将你的计数器变量增加1。因为它只会在有结果的情况下循环,所以这将有效地为您计算,因此您可以为列表编号。

修改 正如 CatalinB 所建议的那样:

    $posts_sql = "SELECT id, added, title FROM posts ORDER BY added DESC LIMIT $offset, $post_limit";
    $posts_res = mysqli_query($con, $posts_sql);
    $counter = 1;
    while($post = mysqli_fetch_assoc($posts_res)){

        $post_id = $post["id"];
        $post_added = $post["added"];
        $post_title = ucwords($post["title"]);

        $display_posts .= "

        <b>$counter</b> ... <strong class='resultsLink'>$post_title</strong>";

        $counter++;

    };

这将允许您在前面的0位数字前面加上前面的0。

答案 1 :(得分:1)

使用mysqli_fetch_all函数一次获取所有记录,然后使用foreach循环显示所有结果,并使用$ results表的键显示行数。

$posts_sql = "SELECT id, added, title FROM posts ORDER BY added DESC LIMIT $offset, $post_limit";
$posts_res = mysqli_query($con, $posts_sql);

$results = mysqli_fetch_all($posts_res,MYSQLI_ASSOC);

foreach($results as $key=>$post){

    $post_id = $post["id"];
    $post_added = $post["added"];
    $post_title = ucwords($post["title"]);

    $display_posts .= "

    <b>".sprintf("%02d",$key)."</b> ... <strong class=\"resultsLink\">$post_title</strong>
};