【问题标题】:Trying to figure out why this PHP while loop actually works试图弄清楚为什么这个 PHP while 循环确实有效
【发布时间】:2014-12-15 03:42:47
【问题描述】:

这个问题是基于我之前提交的一个问题得到的答复:

Print new <div> on id iteration change inside php while loop from MySQL result

这不是一个真正的问题,但我正在尝试了解发生了什么。

我不明白为什么当$previous 等于null 时,这个循环在第一次迭代时没有将&lt;/div&gt; 添加到变量$html

$previous = null;

while ($result = $stmt->fetch()) {

    if ($_company_id !== $previous) {
        if($previous !== null) {
            $html .='</div>';
        }
        $html .= '<div id="company-' . $_company_id . '" class="tab-pane fade">';
    }

    $previous = $_company_id;

}

if($previous != null) {
    $html.='</div>';
}

输出完全符合我的要求:

<div id="company-1" class="tab-pane fade"></div>
<div id="company-2" class="tab-pane fade"></div>

但我就是不明白为什么。谁能给我解释一下?

【问题讨论】:

  • 因为$previous 在第一次迭代时是NULL
  • 尝试将!==改为!=
  • 我没有得到这个代码,你在哪里设置$_company_id
  • @DaveChen $_company_id 是来自$stmt-&gt;bind_result() 的变量

标签: php html mysql loops while-loop


【解决方案1】:

实际上是因为他们检查 IF IS NOT。仔细看看

 if($previous !== null) {
   $html .='</div>';
 }

所以它在第一次通过时被跳过。在每隔一个回合它都有一个值并且条件为真。因此执行代码。

【讨论】:

  • 啊,我现在明白了......一直盯着我看代码,但我现在明白了。我也觉得有点傻。无论如何,谢谢!
  • @David 不客气。有时距离很远有助于看到明显的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-30
  • 2021-01-06
  • 2021-02-12
  • 2013-11-12
  • 2019-09-15
  • 2013-03-10
  • 1970-01-01
相关资源
最近更新 更多