【问题标题】:php while loop database dataphp while循环数据库数据
【发布时间】:2017-10-08 08:40:20
【问题描述】:

下面的while循环语句循环mysqli查询结果(来自数据库的文本和图像)。一行可以只包含文本或图像和文本。我试图仅在图像字段为空时显示文本,并在图像和文本都连续存在时显示它们。但是,我尝试在下面的 while 循环语句中使用 if 语句,问题是当它假设只显示文本时,它显示带有图像标签的文本,没有 src 值,请帮助解决这个问题。 谢谢。

while($row = mysqli_fetch_assoc($query)){
    $id = $row["id"];
    $text = $row["texts"];
    $image =$row['images']; 
    if(!empty($text) && !empty($image)){
        echo '<img src='.$image.'/>';
        echo '<div>'.$text.'</div>';
    }elseif( !empty($text) && empty($image) ){
        echo '<div>'.$text.'</div>';
    }
}

【问题讨论】:

  • 我们无法提供帮助,因为我们不知道您正在使用的数据。
  • 那么$image实际上包含什么究竟
  • @arkascha 图片位置网址
  • 我建议你再考虑一下最后的评论。
  • 如果这是回显&lt;img&gt; 标签,$image 不为空。如果你 var_dump($image); 对那些现在回显空的 &lt;img&gt; 标签的情况有什么看法?

标签: php if-statement while-loop


【解决方案1】:

$row['images'] 可能包含空格,请尝试修剪它。另外,您可以简化if

while($row = mysqli_fetch_assoc($query)){
    $id = $row["id"];
    $text = trim($row["texts"]);
    $image = trim($row['images']); 
    if(!empty($image)){
        echo '<img src='.$image.'/>';
    }
    if(!empty($text)){
        echo '<div>'.$text.'</div>';
    }
}

【讨论】:

    【解决方案2】:
    while($row = mysqli_fetch_assoc($query)){
       $id = $row["id"];
       $text = $row["texts"];
       $image =$row['images']; 
    
       if($image)
          echo "<img src='{$image}' />";
       if($text)
          echo "<div>{$text}</div>";
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-05-13
      • 1970-01-01
      • 2015-04-23
      • 2014-11-13
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      • 2013-06-01
      • 2016-10-21
      相关资源
      最近更新 更多