我想使用php从mysql的单个查询中获取两组数据。 下面的方法一次取一行,但我想一次取两行。
$qblog = "SELECT * FROM `blogs` WHERE status='1' ";
$qblog1 = mysqli_query($con,$qblog);
while($data = mysqli_fetch_array($qblog1)){
<div><?php echo $data['blog_title'];?></div>
<?php } ?>
我无法找到方法或任何线索。请提供建议。 谢谢。
答案 0 :(得分:1)
根据您的评论,
...我想显示像这里的博客,homehero.org/blog,如果你检查元素,你会看到2&#39; blog-post&#39;在每一行&#39;中重复。
您必须使用计数器变量来跟踪每行显示的博客帖子数量。所以你的代码应该是这样的:
$qblog = "SELECT * FROM `blogs` WHERE status='1' ";
$qblog1 = mysqli_query($con,$qblog);
$counter = 1;
while($data = mysqli_fetch_array($qblog1)){
if($counter % 3 == 0){
// display the blogspots and style them
}
++$counter;
}
答案 1 :(得分:1)
我不确定除了在查询中使用LIMIT 2
之外,还有一种方法可以一次获得两行。您可以添加一些条件以在单个迭代中显示两行,但在我看来,您需要在while
内添加另一个循环,如下所示:
$qblog = "SELECT * FROM `blogs` WHERE status='1'";
$qblog1 = mysqli_query($con, $qblog);
$post_count = 0;
while($data = mysqli_fetch_array($qblog1)):
if($post_count === 2):
echo "<p>--------------------</p>";
foreach($data_temp as $data_tmp):
?>
<div><?php echo $data_tmp['blog_title'];?></div>
<?php
endforeach;
echo "<p>--------------------</p>";
$post_count = 0;
unset($data_temp);
endif;
$data_temp[] = $data;
$post_count += 1;
endwhile;
?>
我刚看了@Rajdeep Paul提到的https://www.homehero.org/blog。这是关于布局,这意味着你可以用CSS来做,而不是在PHP中的条件。使用CSS方式更容易,而不是在PHP中创建条件。