前提・実現したいこと
PHP初心者です。
DBから取得したデータを表に表示させたいのですがNULLの値の場所が下の画像のようになります。
NULLの場所を表示させない方法はありますか?
表の余白もできればそろえたいです。
発生している問題・エラーメッセージ
該当のソースコード
session_start(); $user = $_SESSION['user']; ?> <?php $day = date("Y/m"); if($day == '2020/02'){ try{ $pdo = new PDO( 'mysql:host=localhost;dbname=friske;charset=utf8', 'root', ''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $sql = "SELECT day,youbi,Todo1,memo1,Todo2,memo2,Todo3,memo3,Todo4,memo4,Todo5,memo5 FROM calendar_2020_$user AS T1 WHERE EXISTS(SELECT * FROM calendar_2020 WHERE (T1.Todo1 AND T1.memo1 AND T1.Todo2 AND T1.memo2 AND T1.Todo3 AND T1.memo3 AND T1.Todo4 AND T1.memo4 AND T1.Todo5 AND T1.memo5) IS NOT null)AND month=2 "; $stmh = $pdo->prepare($sql); $stmh->execute(); }catch(PDOException $Exception){ die('接続エラー:' .$Exception->getMessage()); } }elseif($day == "2020/03"){ try{ $pdo = new PDO( 'mysql:host=localhost;dbname=friske;charset=utf8', 'root', ''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $sql = "SELECT day,youbi,Todo1,memo1,Todo2,memo2,Todo3,memo3,Todo4,memo4,Todo5,memo5 FROM calendar_2020_$user AS T1 WHERE EXISTS(SELECT * FROM calendar_2020 WHERE (T1.Todo1 AND T1.memo1 AND T1.Todo2 AND T1.memo2 AND T1.Todo3 AND T1.memo3 AND T1.Todo4 AND T1.memo4 AND T1.Todo5 AND T1.memo5) IS NOT null)AND month=2 "; $stmh = $pdo->prepare($sql); $stmh->execute(); }catch(PDOException $Exception){ die('接続エラー:' .$Exception->getMessage()); } } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>今月の予定</title> </head> <body> <h2>今月の予定</h2> <?php while($row = $stmh->fetch(PDO::FETCH_ASSOC)){ ?> <table border> <tr> <td><?=htmlspecialchars($row['day'])?>(<?=htmlspecialchars($row['youbi'])?>)</td> <td><?=htmlspecialchars($row['Todo1'])?></td> <td><?=htmlspecialchars($row['memo1'])?></td> <td><?=htmlspecialchars($row['Todo2'])?></td> <td><?=htmlspecialchars($row['memo2'])?></td> <td><?=htmlspecialchars($row['Todo3'])?></td> <td><?=htmlspecialchars($row['memo3'])?></td> <td><?=htmlspecialchars($row['Todo4'])?></td> <td><?=htmlspecialchars($row['memo4'])?></td> <td><?=htmlspecialchars($row['Todo5'])?></td> <td><?=htmlspecialchars($row['memo5'])?></td> <?php } $pdo = null; ?> </tr> </table> </body> </html>
「NULLの場所を表示させない方法」とは? (意図がわからんス)
均等に表示したいなら css なりなんなりで幅を固定するもんだと思うのですが…
コードはマークダウンのcode機能を利用してご提示ください。
また、静的HTMLではどう表現したいのでしょうか。
NULLはいわば「何もない」状態なので、おかしくも何もないと思います。
表の空白の部分を表示させないような作りにしたいのですが...
コードはマークダウンのcode機能を利用してご提示ください。
>nullだった時その列を表示させない
これそのままPHPで書けばいいだけでは・・・。
PHPにはデフォルト関数にnullの判定する機能もあるし、「nullと判定されたら出力しない」だけです。
私の力不足でどのように書いたらいいのか...
PHP null 判定
とかでズバリその機能のPHPマニュアル出てきますし、
サンプルコードもありますが、それらは何のは参考にもなりませんか?
回答2件
あなたの回答
tips
プレビュー