【问题标题】:PHP For Loop Count in While StatementWhile 语句中的 PHP For 循环计数
【发布时间】:2017-06-08 09:16:25
【问题描述】:

我正在尝试找出如何在依赖 div 类的同时使用 php 输出我的 html 的最佳解决方案。

这是我打印新闻的函数:

function post_news()
{
    $post_news = $this->mysql->Query("SELECT * FROM news ORDER BY id DESC LIMIT 4");
    while ($news_row = mysqli_fetch_array($post_news))
    {
        echo "<div class='column1'>
            <div class='box'>
            <h3>".$news_row['title']."</h3>
            <p>".$news_row['content']."</p>
            <a href='index.php?p=news&id=".$news_row['id']."' class='button button-small'>Read More</a> </div>
            </div>";
    }
}

我正在尝试的是,它显示&lt;div class='column1'&gt; 我需要它向上计数到class='column4'。当我尝试 For 循环或第二个 While 循环时,有时我可以让它计数,但它总是会换行,我希望这些块像往常一样并排显示。

那么在我的 div 类没有在每个块之后进行换行的情况下,计算我的 div 类的最佳方法是什么?

【问题讨论】:

    标签: php html


    【解决方案1】:

    我假设当您说 1 到 4 时,您希望它在 4 之后从 1 重新开始。只需增加一个计数器并在达到 4 时将其重置:

    $num = 0;
    while ($news_row = mysqli_fetch_array($post_news))
        {
            $num++;
            echo "<div class='column{$num}'>
                <div class='box'>
                <h3>".$news_row['title']."</h3>
                <p>".$news_row['content']."</p>
                <a href='index.php?p=news&id=".$news_row['id']."' class='button button-small'>Read More</a> </div>
                </div>";
            if($num == 4) { $num = 0; }
        }
    

    或者实际上,您在查询中使用了LIMIT 4,因此您实际上不需要将其重置为0if 语句,因为循环只会迭代4 次。

    【讨论】:

      【解决方案2】:

      纯 html 解决方法是使用如下代码:

      <div class='column1'>
      ...
      </div><div class='column2'>
      ..
      </div>
      

      但是因为你在呼应它,那是行不通的。您可以做的另一件事是为这些列指定 inline-block css 属性。如果您使用引导程序,您可以使用col-xs-3,这样您就可以拥有 4 个偶数列。

      如果不是,那么您将不得不将这些类中的每一个指定为width:25%

      所以总结一下,在 css 中:

      .col{
          width:25%;/*probably going to have make responsive for screen width*/
          display:inline-block;/*or float:left, whichever*/
      }
      

      在 php/html 中:

      ...
      echo "<div class='column1 col'>
                  <div class='box'>
                  <h3>".$news_row['title']."</h3>
                  <p>".$news_row['content']."</p>
                  <a href='index.php?p=news&id=".$news_row['id']."' class='button button-small'>Read More</a> </div>
                  </div>";
      ...
      

      希望对您有所帮助。

      【讨论】:

      • 这是一个很好的 CSS 解决方法,谢谢,我会记住这一点,以备后用。我选择了 AbraCadaver 的答案,因为它完全符合我的需要
      猜你喜欢
      • 1970-01-01
      • 2017-03-09
      • 2013-11-01
      • 1970-01-01
      • 2017-03-08
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多