不显示数据库中行的特定空白列

时间:2018-08-29 05:49:38

标签: php html database if-statement phpmyadmin

我有一个工作代码,可以插入和更新数据库中的信息并将其回显到页面。但我想在显示行中的所有信息时隐藏特定的空列。 check this screenshot 我的目标是在“图片”列为空/空时隐藏它;因此缸图像不会显示。这是我的代码如下:

 <?php
    $result = mysqli_query($mysqli, "SELECT * FROM blogs ORDER BY id DESC");
    while ($row = mysqli_fetch_array($result)) 

    if (!empty($row['image'] != "")) 

    {
      echo "<div class='row'>
        <div class='col-lg-12 box'>
           <div class='content-heading'>
             <p>
                <text>".$row['title']."</text>
             </p>
           </div>

             <p>    
                <text1 class='pull-right' >".$row['image_text']."</text1><br/>
             <img class='img-size' id='hp'src='admin/upload_images/".$row['image']."'/>

             <text>".$row['definition']."</text> 
            </p>
          </div>
       </div>";     

   }
?>

但是此代码if (!empty($row['image'] != ""))隐藏了我数据库中的整个行。 谁能为我的问题找到正确的解决方案?

3 个答案:

答案 0 :(得分:1)

您可以尝试使用style标签的<img>属性来选择性地显示或隐藏图片标签:

<img class='img-size'
     id='hp'
     style='display: '. ($row["image"] != "" ? "block" : "none") . ';'
     src='admin/upload_images/".$row['image']."'/>

答案 1 :(得分:0)

代替隐藏整个行,您可以像这样隐藏图像标签:

 <?php
    $result = mysqli_query($mysqli, "SELECT * FROM blogs ORDER BY id DESC");
    while ($row = mysqli_fetch_array($result)) 
    {
        echo "
            <div class='row'>
                <div class='col-lg-12 box'>
                    <div class='content-heading'>
                        <p>
                            <text>".$row['title']."</text>
                        </p>
                    </div>

                    <p>    
                        <text1 class='pull-right' >".$row['image_text']."</text1><br/>
        ";

        if (!empty($row['image'])) {
            echo "<img class='img-size' id='hp'src='admin/upload_images/".$row['image']."'/>";      
        }                 

        echo "
                 <text>".$row['definition']."</text> 
                </p>
              </div>
           </div>
       ";     

   }
?>

答案 2 :(得分:0)

您的if条件也将隐藏所有其他html元素,而当img的值找不到时,您应该仅隐藏image标记。

如下更新代码:

while ($row = mysqli_fetch_array($result)) {
    $image = (!empty($row['image'])) ? "<img class='img-size' id='hp'src='admin/upload_images/" . $row['image'] . "'/>" : "";
    echo "<div class='row'>
            <div class='col-lg-12 box'>
               <div class='content-heading'>
                 <p>
                    <text>" . $row['title'] . "</text>
                 </p>
               </div>        
                 <p>    
                    <text1 class='pull-right' >" . $row['image_text'] . "</text1><br/>
                    " . $image . "
                    <text>" . $row['definition'] . "</text> 
                </p>
            </div>
        </div>";
}