我想检查数据库中是否有超过或等于一行字段“发布”=发布,然后显示“发布”=发布的所有帖子(行)。 为此,我尝试从 if 语句开始 - if 行计数大于或等于 1,而不是 run while 语句。但这限制了 while 语句仅显示 1 个帖子。
$query = "SELECT * FROM posts WHERE publish='publish' ORDER BY data_id DESC";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_array($result);
$row_cnt = mysqli_num_rows($result);
if ($row_cnt >= 1) {
while($row = mysqli_fetch_array($result)){
echo '<h3>'. $row['title'] .'</h3>
<br><br>
<p>' . $row['post'] . '</p>;
}
} else {
echo '<h4>Sorry, no posts to display.</h4></div>';
}
最佳答案
除了 echo 语句中的拼写错误(缺少引号)之外,代码完全没问题。
您已经在 while 循环之前获取了第一行,如果您只有 2 行,您可能会认为它只返回 1 行。只需删除查询执行行下的 $row = mysqli_fetch_array($result);
即可。
关于php - 我可以在php的if语句中运行while语句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34667218/