由于某种原因,当我尝试显示所有5组数据时,它仅显示4组,并且拒绝显示最新添加的数据组。谁能帮我弄清楚为什么会这样吗?我正在从页面开头的表格中选择所有内容。
<article class="uk-article">
<?php
$i = 0;
while ($row = mysqli_fetch_assoc($result)) {
if($i%1 == 0) {
echo'<div><div>';
}
echo "
<h2>
<a class=uk-link-reset href='projectdetails.php?ID={$row['ID']}' uk-toggle>
{$row['title']}
</a>
</h2>
<p class='uk-article-meta'>Written by {$row['author']}</p>
";
if (strlen($row['info']) > 10) {
// cut the article
$infoCut= substr($row['info'], 0, 250);
//ensure that it ends with a whole word
$row['info'] = substr($infoCut, 0, strrpos($infoCut, ' ')). "... <a class=uk-link-reset href='projectdetails.php?ID={$row['ID']}' uk-toggle>
Read More
</a> " ;
}
echo "
<p> {$row['info']} </p>
";
if($i%1 == 0) {
echo '</div>
</div>';
}
$i++;
}
?>
</article>
答案 0 :(得分:0)
您可以使用“无获取”方法来迭代结果集,并将行索引用作计数器。我假设您想将结果成对分组(否则,我无法想象您要用除以1产生的余数要做什么)。
这是上一篇文章,其中我展示了如何在特定点截断字符串并添加省略号:https://stackoverflow.com/a/49422362/2943403
完成迭代后,关闭所有可能打开的容器很重要,这就是为什么我的代码检查偶数$i
的原因。
$query="SELECT `ID`, `title`, `author`, `info` FROM `your_table`";
if (!$conn = new mysqli("localhost", "root", "", "dbname")) {
echo "Database Connection Error";
} elseif (!$result = $conn->query($query)) {
echo "Syntax Error";
} else {
echo "<article class='uk-article'>";
foreach ($result as $i => $row) { // fetchless result set iteration
if (!($i & 1)) { // not odd
if ($i) { // not zero
echo "</div>"; // close the open container
}
echo "<div style='border:solid 1px black'>"; // create new container for potential pair
}
echo "<h2><a class='uk-link-reset' href='projectdetails.php?ID={$row['ID']}' uk-toggle>{$row['title']}</a></h2>";
echo "<p class='uk-article-meta'>Written by {$row['author']}</p>";
$ellipsis = "...<a class=uk-link-reset href='projectdetails.php?ID={$row['ID']}' uk-toggle>Read More</a>";
echo "<p>" , preg_replace('/.{250}\S*\s\K.+/s', $ellipsis, $row['info']) , "</p>"; // only use ellipsis when qualified/needed
}
if (!empty($i) && !($i & 1)) { // $i is declared and is even (ensure valid DOM is generated)
echo "</div>"; // create new container for potential pair
}
echo "</article>";
}