[php+mySQL]データを取り出してリスト化する方法

データが空だったときの扱いには注意したい。

こんな感じ

<?php 
    $sql = "SELECT * FROM 【テーブル名】 LIMIT 1, 20";
    $stmt = $dbh->prepare($sql);
    $stmt->execute();
    if(empty($stmt)){
        print 'データなし';
    }else{
        foreach ($stmt as $row) {
            $example = $row['example'];
            print $example;
        }
    }
    $dbh = null;
?>

$row[]にテーブル内のカラム名を入れたら出る。

if文で囲う必要性

これなんだけど。

    if(empty($stmt)){
        print 'データなし';
    }else{
        foreach ($stmt as $row) {
            $example = $row['example'];
            print $example;
        }
    }

単純に「あるものを書き出す」だけならif文は要らない。

中身が無いなら無いで、if文で括らずにforeachだけを書いちゃっても支障はないらしい。

でも個人的にはif文で囲ったほうが安心感がある、というか囲わないとやっていけない。

例えばこんな感じ。

    if(empty($stmt)){
        print '<p>データなし</p>';
    }else{
        print '<ul>';
        foreach ($stmt as $row) {
            $id = $row['id'];
            print '<li>'.$id.'</li>';
        }
        print '</ul>';
    }

リストとかテーブルで並べていくとして、データがなかったら<ul>も<table>も使わないよってなってたら、こういう書き方をする必要が出てくる。

それにそもそも何も表示されてなかったら、何で表示されてないかを知っておかないとだし。

だからifはほしい。

コメント

タイトルとURLをコピーしました