0

クエリ結果が空の場合、空/空白のテーブルまたはテーブルヘッダーのみを表示する適切な実装は何でしょうか?

**注/条件
ページリダイレクト
なし2つのテーブルの作成なし。1つは結果が空のクエリ用で、もう1つは結果のあるクエリ用です。

または、これを行うためのはるかに優れた方法はありますか?
サンプルコードは次のとおりです。

<?php if(isset($result)){ ?>  
<table>
<tr>
    <td>Name</td>
    <td>Email</td>
</tr>  

<?php foreach($result as $key => $data){?>
<tr>  
    <td><?php echo $data['name'];?></td>  
    <td><?php echo $data['email_add'];?></td>   
</tr>   
<?php }?>
</table>
<?php } ?>

ここでの問題は、foreachループでエラーが発生することです。

4

3 に答える 3

1

例外について:

が設定されているかどうかを確認$resultsしますが、ループオーバーを試みます$result(末尾にsはありません)。問題の一部である可能性のあるタイプミスがあると思います。タイプミスを修正し、結果が空でないことを確認すると(設定されている可能性がありますが、まだ空です)、スローされる例外が修正される可能性があります。

常にヘッダーを表示することについて:

何があってもヘッダーを表示するには、ifステートメントをループの直前に移動します。

参考までに-適切にフォーマットされたHTMLテーブルについて:

テーブルのヘッダーを宣言するには、通常、<thead>要素を使用して、テーブルのコンテンツからヘッダーを分離します。適切にフォーマットされたHTMLテーブルの例:

<table>
   <thead>
       <tr>
          <th>Name</th>
          <th>Email</th>
       </tr>
   </thead>
   <tbody>
       <tr>
          <td>John</td>
          <td>john@email.com</td>
       </tr>
   </tbody>
</table>

テーブルのフォーマットの詳細

あなたの場合、私は<tr>内の要素の周りにループを置きます<tbody>

于 2013-02-10T22:19:23.973 に答える
1

クエリ結果がfalseを返す場合、代わりに空の配列を返します

私はこの助けを願っています、そして必要ならばもっと助けの準備ができています

于 2013-02-10T22:20:37.513 に答える
0
<?php if(isset($result) && !empty($result)): ?>  
    <table>
    <tr>
        <td>Name</td>
        <td>Email</td>
    </tr>  

    <?php foreach($result as $data): ?>
    <tr>  
        <td><?php echo $data['name'];?></td>  
        <td><?php echo $data['email_add'];?></td>   
    </tr>   
    <?php endforeach ?>
    </table>
<?php else: ?>
    No results found.
<?php endif ?>

読みやすさが大幅に向上するため、PHPテンプレートには長い形式のステートメントを使用することをお勧めします。

于 2013-02-10T22:18:50.707 に答える