简体   繁体   English

在1个while循环内检索3个唯一记录

[英]Retrieve 3 unique records within 1 while loop

I know this might have a very simple solution but I just cannot seem to find it, I want to display 3 different records but at the moment I am getting the 1st record 3 times, then the 2nd and so on. 我知道这可能有一个非常简单的解决方案,但是我似乎无法找到它,我想显示3条不同的记录,但是目前我获得3条第一条记录,然后获得2条,依此类推。

See image of results here: 在此处查看结果图片:

在此处输入图片说明

I specifically want 3 different results, one spread across the 12 length bootstrap div and two spread across the two 6 length bootstrap divs. 特别想要3个不同的结果,一个分布在12个长度的引导div上,两个分布在两个6个长度的引导div上。

$query="SELECT postID, postTitle, postDesc, postDate FROM blog_posts ORDER BY postID DESC";
$result=mysqli_query($conn, $query);

$counter = 0;
$max = 3;

while (($row = mysqli_fetch_array($result)) and ($counter < $max)) {

 echo '<div class="row">';
    echo '<div class="col-md-12">';
      echo '<h3><a href="viewpost.php?id='.$row['postID'].'">'.$row['postTitle'].'</a></h3>';
      echo '<small style="font-size: 12px;color:#ADACAD;"> Posted on '.date('l, jS M Y H:i:s', strtotime($row['postDate'])).'</small>';
      echo '<p>'.$row['postDesc'].'</p>';               
      echo '<p><a href="viewpost.php?id='.$row['postID'].'" class="btn btn-default">Read More</a></p>';
    echo '</div>';
 echo '</div>';     

echo '<div class="row">';
    echo '<div class="col-md-6">';
      echo '<h3><a href="viewpost.php?id='.$row['postID'].'">'.$row['postTitle'].'</a></h3>';
      echo '<small style="font-size: 12px;color:#ADACAD;"> Posted on '.date('l, jS M Y H:i:s', strtotime($row['postDate'])).'</small>';
      echo '<p>'.$row['postDesc'].'</p>';               
      echo '<p><a href="viewpost.php?id='.$row['postID'].'" class="btn btn-default">Read More</a></p>';
    echo '</div>';      
    echo '<div class="col-md-6">';
      echo '<h3><a href="viewpost.php?id='.$row['postID'].'">'.$row['postTitle'].'</a></h3>';
      echo '<small style="font-size: 12px;color:#ADACAD;"> Posted on '.date('l, jS M Y H:i:s', strtotime($row['postDate'])).'</small>';
      echo '<p>'.$row['postDesc'].'</p>';               
      echo '<p><a href="viewpost.php?id='.$row['postID'].'" class="btn btn-default">Read More</a></p>';
    echo '</div>';      
echo '</div>';
$counter++; 

}

this is because you are doing 3 block div echo time for each loop 这是因为您为每个循环执行3个div块的echo时间

echo '<div class="row">';
.....   

echo '<div class="row">';
    echo '<div class="col-md-6">';
...      
echo '<div class="col-md-6">';
....

updated: 更新:

while(($row = mysqli_fetch_array($result)) and ($counter < $max))
{
    if($counter == 0)
    {
        echo '<div class="row">';
        echo '<div class="col-md-12">';
        echo '<h3><a href="viewpost.php?id='.$row['postID'].'">'.$row['postTitle'].'</a></h3>';
        echo '<small style="font-size: 12px;color:#ADACAD;"> Posted on '.date('l, jS M Y H:i:s', strtotime($row['postDate'])).'</small>';
        echo '<p>'.$row['postDesc'].'</p>';
        echo '<p><a href="viewpost.php?id='.$row['postID'].'" class="btn btn-default">Read More</a></p>';
        echo '</div>';
        echo '</div>';
    }
    elseif($counter == 1)
    {
        echo '<div class="row">';
        echo '<div class="col-md-6">';
        echo '<h3><a href="viewpost.php?id='.$row['postID'].'">'.$row['postTitle'].'</a></h3>';
        echo '<small style="font-size: 12px;color:#ADACAD;"> Posted on '.date('l, jS M Y H:i:s', strtotime($row['postDate'])).'</small>';
        echo '<p>'.$row['postDesc'].'</p>';
        echo '<p><a href="viewpost.php?id='.$row['postID'].'" class="btn btn-default">Read More</a></p>';
        echo '</div>';
    }
    else
    {
        echo '<div class="col-md-6">';
        echo '<h3><a href="viewpost.php?id='.$row['postID'].'">'.$row['postTitle'].'</a></h3>';
        echo '<small style="font-size: 12px;color:#ADACAD;"> Posted on '.date('l, jS M Y H:i:s', strtotime($row['postDate'])).'</small>';
        echo '<p>'.$row['postDesc'].'</p>';
        echo '<p><a href="viewpost.php?id='.$row['postID'].'" class="btn btn-default">Read More</a></p>';
        echo '</div>';
        echo '</div>';
    }
    $counter++;
}

You can write it like this. 您可以这样写。

You need to work on your loops as well. 您还需要处理循环。

$query="SELECT postID, postTitle, postDesc, postDate FROM blog_posts ORDER BY postID DESC";
$result=mysqli_query($conn, $query);

$counter = 0;
$max = 3;
$divMd = 12;


while (($row = mysqli_fetch_array($result)) and ($counter < $max)) {

if($counter ==1){
   $divMd = 6;
 }

 if($counter!=2){
     echo '<div class="row">';
  }
    echo '<div class="col-md-'.$divMd.'">';
      echo '<h3><a href="viewpost.php?id='.$row['postID'].'">'.$row['postTitle'].'</a></h3>';
      echo '<small style="font-size: 12px;color:#ADACAD;"> Posted on '.date('l, jS M Y H:i:s', strtotime($row['postDate'])).'</small>';
      echo '<p>'.$row['postDesc'].'</p>';               
      echo '<p><a href="viewpost.php?id='.$row['postID'].'" class="btn btn-default">Read More</a></p>';
    echo '</div>';

  if($counter!=1){
     echo '</div>'; 
   }    

$counter++; 

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM