【问题标题】:How to add IF condition in a WHILE loop如何在 WHILE 循环中添加 IF 条件
【发布时间】:2019-12-06 17:36:50
【问题描述】:

我正在尝试在帖子上制作简单的 cmets。添加 cmets 我已成功完成,但显示它们时出现问题。 我使用此代码:

<?php
    require "config.php";
    $sql    = "SELECT post_id, user_id, comment FROM comments";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            echo  "User " .$row["user_id"]. "&nbsp;&nbsp;&nbsp;add comment: ".$row["comment" ]."</br>";
        } 
    }
    else { echo "No comments for this post";}
?>

我必须在 WHILE 循环中添加一个条件:

 if $row["post_id"]==$post_id

因此 cmets 仅显示在为其编写的帖子上。 ($post_id 之前已定义)。我该怎么做?

【问题讨论】:

  • 您可以在查询的 where 子句中传递帖子 ID
  • 谢谢。我是php的初学者,但我不明白我是怎么错过的

标签: php while-loop conditional-statements


【解决方案1】:
  1. 正如@midhat 所指出的,只需使用查询的where 子句,如果 不再需要条件。
  2. 你可以试试这个
while($row = $result->fetch_assoc()) {
      if( $row["post_id"]==$post_id ){
          echo  "User " .$row["user_id"]. "&nbsp;&nbsp;&nbsp;add comment:".$row["comment" ]."</br>";
      }
  }

【讨论】:

    【解决方案2】:

    您只能获取具有特定post_id 的 cmets,并且不需要应用任何 if 条件,如下所示:

    <?php
        require "config.php";
        $sql    = "SELECT post_id, user_id, comment FROM comments where post_id = ".$post_id;
        $result = $conn->query($sql);
    
        if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                echo  "User " .$row["user_id"]. "&nbsp;&nbsp;&nbsp;add comment: ".$row["comment" ]."</br>";
            } 
        }
        else { echo "No comments for this post";}
    ?>
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2014-06-26
      • 2017-09-14
      • 1970-01-01
      • 2016-08-28
      • 2017-05-26
      • 2019-10-01
      • 2015-02-02
      • 2019-11-07
      • 2020-07-15
      相关资源
      最近更新 更多