如何在每页显示10条记录,然后如何使用分页?

时间:2015-12-16 18:22:04

标签: php

One record 10 records loop 我在显示正确的记录方面遇到了麻烦,在我需要使用分页后结束。 v_news.php

<div class="news">
        <a href="index.php?ogloszenie='<?php $row['id_article']; ?>'">
    <div class="newstitle">
       <?php echo $row['title'];?>
    </div>
    <div class="newsauthor">
        <?php echo $row['username'];?>
    </div>
            <div class="newscomment">
                comments: 56
            </div>
    <div class="newsdate">
        <?php echo $row['timestamp'];?>
    </div>
        </a>

</div>
m_news.php

<?php

if(!isset($_SESSION['id'])){
    header("Location: index.php");
    exit();
}else{
    
    $result = $Database->query("SELECT * FROM article LIMIT 0, 10");
    if($result->num_rows != 0){
        $rows = $result->fetch_assoc();
        foreach ($rows as $row){
        include("views/v_news.php");
    
    } 
        
    
    }else{
        echo "No results";
    }
    
}

使用foreach循环我有一个错误非法字符串偏移$ row ['']。我不知道该怎么办。

3 个答案:

答案 0 :(得分:0)

首先尝试修复v_news.php中的第二行代码。 你忘了使用“echo”。

<a href="index.php?ogloszenie='<?php $row['id_article']; ?>'">

更改为:

<a href="index.php?ogloszenie='<?php echo $row['id_article']; ?>'">

答案 1 :(得分:0)

fetch_assoc()取一行,而不是全部。

你可以使用while循环,一旦fetch_assoc()停止返回新行,它将结束。

while($row = $result->fetch_assoc()){
    include("views/v_news.php");
}

对于分页,您只需要更改LIMIT参数

即。 LIMIT 10,10将是第二页数据(从第10行开始总共10行)。

同样 bobiczeq 指出,您应该确保echo语句出现在<?php $row['id_article']; ?>中,否则这只是空的。

答案 2 :(得分:0)

我找到了正确的答案。

$rows = mysqli_fetch_all($result, MYSQLI_BOTH); 

现在它正常工作了。