人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLから得られたデータをphpで扱うことについての質問です。

例えば、「通勤中気がついたこと」のデータがあるとします。入力は気がついたことがあった時は、テキストで何か書きます。(「イコカを家に忘れた」とか)気がついたことがない日は、何も記入せず、データベースでは null になってます。

これをwebに表示する場合、null の場合は、何も処理をせず、not null (テキストが存在する)の場合は、echo でその中身を表示するようにしたいと思っています。その場合、次のやり方でいいのでしょうか?

php の中で、MySQLの null と not null をどう扱っていいのかが分からず困っています。


if ($row["notice"]){
echo "<br>通勤中気がついたこと:";
echo $row["notice"];
}

●質問者: sun-chan
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:echo MySQL PHP Web イコカ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● gekikawa
●30ポイント ベストアンサー

基本的にはOKです。わたしも(DBに関わらず)良くその方法で書いています。

ただ細かいこと(or大事なこと?)をいうと

$row["notice"]がfalseと判定されてしまう値を持っていると意図に反してしまいます。

具体例は数字の「0」などです。(この数字は表示されることはありません)

書籍で知った方法ですが、このような場合に

if( strlen($row["notice"]) ){

としておけば良さそうですね。

マニュアルでのNULLの説明は

http://mysql2.mirrors-r-us.net/doc/refman/4.1/ja/working-with-nu...

◎質問者からの返答

ありがとうございます。

strlen って知りませんでした。ご紹介のページをじっくり読んでみます。


ところで昨日の夜寝る前に読んでいた本で、issetというのがあって、それも使えそうかなあと思ってました。

→追記です。issetではあまりうまくいきませんでした。

教えていただいたstrlenでは、中身がないときは false を返してくれるので、希望していた通りの動作になりました。


2 ● ねぎ
●23ポイント

http://www.phppro.jp/news/288

変数が空であるか調べる予約語があるらしいので、下記のように記述すればOKだと思います。

if (!empty($row["notice"])) {

echo "<br>通勤中気がついたこと:"; //←<>は半角に直してください

echo $row["notice"];

}

◎質問者からの返答

そんな予約語があったんですね。便利ですね。

ありがとうございました。


3 ● Yota
●20ポイント

わたしなら下のようなクエリで検索をしてSQLレベルで解決します。

>SELECT COALESCE(column名,'データなし') AS column名 FROM table名 ;

http://dev.mysql.com/doc/refman/4.1/ja/comparison-operators.html

◎質問者からの返答

ありがとうございます。


そういう方法もあるんですねー。


欲しいデータが、hizuke, notice, walking_minutes, train などと複数で、そのうち null 値が入っているのが、notice だけなんですが、


その場合は、hizuke, walking_minutes, train はまた別に sqlの命令文を書いて呼び出すことになるんですよね?


4 ● Yota
●20ポイント

欲しいデータが、hizuke, notice, walking_minutes, train などと複数で、そのうち null 値が入っているのが、notice だけなんですが、

その場合は、hizuke, walking_minutes, train はまた別に sqlの命令文を書いて呼び出すことになるんですよね?


SELECT notice, walking_minutes, train,COALESCE(notice,'データなし') AS notice FROM テーブル名 ;

でいいと思いますが、やってみてください。

http://www.dummy/

◎質問者からの返答

補足ありがとうございます。

いろいろ試してみますね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ