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>
<?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 ['']。我不知道该怎么办。
答案 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);
现在它正常工作了。