如果sql查询没有显示任何结果,我该如何隐藏表

时间:2018-06-12 05:58:13

标签: php mysql select

所以我一直在研究这个查询,以便根据从数据库中提取的内容显示某些信息,但是我总是看到表格的第一个,在这种情况下是表格标题。我的问题是,当没有结果显示标题仍然存在并且在以下查询没有产生结果时没有运气隐藏它们。请指出我正确的方向,片段可以真正帮助。 :)

<div>
<?php
$query1 = $wpdb->get_results( $wpdb->prepare ( "SELECT * FROM table WHERE Column1='$column1value'", OBJECT_K ));?>
    <table>
        <tr>
            <td>Header1</td>
            <td>Header2</td>
            <td>Header3</td>
        </tr>

        <?php foreach ($query1 as $results1) {?>
            <?php if($results1->Column2 !="" && $results1->Column2_Msg!=""){ ?>
            <tr>
                <td><?php echo $results1->Column1; ?></td>
                <td><?php if($results1->Column2!=""){echo date('m/d/y', strtotime($results1->Column2)); }else echo '';?></td>
                <td><?php echo $results1->Column2_Msg; ?></td>
            </tr>
            <?php }?>
            <?php if($results1->Column3!="" && $results1->Column3!=""){ ?>
            <tr>
                <td><?php echo $results1->Column1; ?></td>
                <td><?php if($results1->Column3!=""){echo date('m/d/y', strtotime($results1->Column3)); }else echo '';?></td>
                <td><?php echo $results1->Column3_Msg; ?></td>
            </tr>
            <?php }?>
            <?php if($results1->Column4!="" && $results1->Column4_Msg!=""){ ?>
            <tr>
                <td><?php echo $results1->Column1; ?></td>
                <td><?php if($results1->Column4!=""){echo date('m/d/y', strtotime($results1->Column4)); }else echo '';?></td>
                <td><?php echo $results1->Column4_Msg; ?></td>
            </tr>
            <?php }?>
        <?php } ?>
    </table>
</div>

我尝试使用下面的脚本包装包含标题标题的tr,但即使有该区域的结果也只是隐藏它们

 $verify = $wpdb->get_results( $wpdb->prepare ( "SELECT count(*) AS TALLY FROM table WHERE Column1='$column1value' AND Column2 IS NOT NULL AND Column3 IS NOT NULL AND Column4 IS NOT NULL AND Column2_Msg  IS NOT NULL AND Column3_Msg IS NOT NULL AND Column4_Msg IS NOT NULL", OBJECT_K ));

 if ($verify->TALLY > 0 ) {
    foreach ($verify as $verified) {

    // html table goes here

    }
 }
 else {

    echo '';    
 }

任何人都可以为我感谢这一点。

更新

这是sql表结构以及它当前应该如何工作。

|小组| location1 | location2 | location3 | location1_msg | location2_msg | location3_msg |

组列始终包含内容 location1和location1_msg,location2和location2_msg以及location3和location3_msg在html表中配对,并且可以填充一个或另一个或两个项目。

所以html表看起来像这样

|标题1 |标题2 |标题3

|小组| location1 | |

|小组| location2 | location2_msg |

|小组| | location3_msg |

但是如果组中没有任何内容,我不希望出现html表。我把一切都搞定了,除了让它消失lol

2 个答案:

答案 0 :(得分:1)

这与M Khalid Junaid发布的答案基本相同。我只是想向你展示整个剧本。原因在于,这只是个人偏好,因为我个人不喜欢通过我的代码,尤其是在不同情况下,经常进出php。

因此,下面的代码向您展示了如何使用连接来分解脚本。在我看来,它使脚本更容易遵循和排除故障。

无论如何,只是另一种方式:

$query1 = $wpdb->get_results( $wpdb->prepare ( "SELECT * FROM table WHERE Column1='$column1value'", OBJECT_K ));

if($query1){

echo 
'<div>
  <table>
    <tr>
      <td>Header1</td>
      <td>Header2</td>
      <td>Header3</td>
    </tr>';

    foreach ($query1 as $results1) {

      if($results1->Column2 !="" && $results1->Column2_Msg!=""){
      echo
        '<tr>
          <td>' . $results1->Column1 . '</td>';

          if($results1->Column2!=""){
          echo '<td>' . date('m/d/y', strtotime($results1->Column2)) . '</td>'; 
          }
      echo '<td>' . $results1->Column2_Msg . '</td>
      </tr>';
      }

      if($results1->Column3!="" && $results1->Column3!=""){  
      echo  
      '<tr>
        <td>' . $results1->Column1 . '</td>';

        if($results1->Column3!=""){
        echo '<td>' . date('m/d/y', strtotime($results1->Column3)) . '</td>'; 
        }

      echo '<td>' . $results1->Column3_Msg . '</td>
      </tr>';
      }  

      if($results1->Column4!="" && $results1->Column4_Msg!=""){
      echo  
      '<tr>
        <td>' . $results1->Column1 . '</td>';

        if($results1->Column4!=""){
        echo '<td>' . date('m/d/y', strtotime($results1->Column4)) . '</td>';
        }

        echo   '<td>' . $results1->Column4_Msg . '</td>
      </tr>';

      }
   }

  echo 
  '</table>
</div>';

} else{

  echo 'No data to display.';

  }    

答案 1 :(得分:0)

在创建表格之前添加!empty检查

<?php
$query1 = $wpdb->get_results(......);

    if(!empty($query1)){ ?>
        <table>
            <tr>
               ...............
            <tr>
        </table>

<?php } ?>