簡體   English   中英

使用mysql php一次獲取兩行

[英]fetching two rows at a time in loop using mysql php

我想使用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 } ?>

我找不到方法或任何線索。 請提供建議。 謝謝。

根據您的評論,

...我想在這里顯示博客,如homehero.org/blog ,如果您檢查元素,您將在每個“行”中看到2個“ blog-post”重復。

您必須使用計數器變量來跟蹤每行顯示多少博客文章。 因此,您的代碼應如下所示:

$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;
} 

除了在查詢中使用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中創建條件要容易得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM