人口($pop)と面積($area)から人口密度を計算する際、
MySQLから取り出したデータに、ゼロやNULLが混在しているので、
(1) 分母や分子がゼロの場合
(2) 分母や分子がNULLの場合
は、割り算しないようにしたいのですが、
単純に以下のようにすると、
(1) はN/Aと表示されますが、(2)ではN/Aが表示されません。
NULLもはねるようにするにはどのように記述したらよいでしょうか。
if ($pop > 0 and $area > 0){
$density = $pop / $area ;
} else {
$density = "N/A";
}
No.2ベストアンサー
- 回答日時:
「===」という演算子で、値と同時に型も比較してくれますので、
$pop = null;
$area = 50;
if($pop !== null and $area !== null and $pop > 0 and $area > 0)
{
}
else
{
}
としてあげれば、希望の動作は満たすと思います。
ただ、このやり方が正解なのかどうかは自分にはわかりません。。。
参考URL:http://jp.php.net/manual/ja/language.operators.c …
御礼遅くなって失礼しました。
(作業がここまで到達せず。。。)
まさにご回答のような方法をお尋ねした次第ですが
残念ながら希望通りにはなりませんでした。
別の何かが誤っていたのでしょうかね・・
とにかく、貴重なアドバイスありがとうございました。
No.3
- 回答日時:
NULLの検査にはis_nullが使えます
御礼遅くなって失礼しました。
(作業がここまで到達せず。。。)
貴重なアドバイスありがとうございました。
is_nullについて調べてみます。
No.1
- 回答日時:
MySQLに発行するSELECT文で、NULLだったら、0を返すようにするか、$density をSQLで計算することをお勧めします。
SELECT IFNULL(area, 0) AS area, IFNULL(pop, 0) AS pop ...
みたいな感じですかね。
または、
SELECT CASE WHEN area IS NULL OR pop IS NULL OR area = 0 OR pop = 0 THEN 'N/A' ELSE pop/area END AS density ...
標準SQLですと、CASE式の返す値は型が同じじゃないといけないんですが・・・
MySQLだと通っちゃいます。
御礼遅くなって失礼しました。
(作業がここまで到達せず。。。)
今回は諸事情で使うことができませんが、
SQL側でという発想はありませんでした。
参考にさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- Perl 画像が表示でnull; this.src 1 2022/04/19 11:31
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHP MySql ページング 2 2022/09/20 06:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
if文でゼロとNULLを除外するた...
-
InvokeMemberメソッドとは何を...
-
C言語 dequeue
-
線形リスト(C言語)
-
C言語 二分木探索
-
10進数からN進数に変換するプロ...
-
Enterキーを押されたら次の処理...
-
信頼区間の1.96や1.65ってどこ...
-
C言語での引数の省略方法
-
「指定されたキャストは有効で...
-
c言語
-
c言語で、繰り返し文の中で、0....
-
マイナスからプラスへ転じた時...
-
2÷3などの余りについて
-
正負を反転させて出力するプロ...
-
DWORDの実際の型は何でしょうか
-
プログラミング初心者です。 Py...
-
プログラムでの数字につく”f”の...
-
構文エラー";"が型の前にあり...
-
Cで3乗根を求める方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構造体のリスト削除
-
InvokeMemberメソッドとは何を...
-
ばばぬきプログラムについて
-
C言語 dequeue
-
C言語 リスト
-
C# ref引数のnull判定
-
C言語
-
双方向リストのバブルソートに...
-
API 録音 MCI
-
ご教授ください。Segmentation ...
-
今度はdoubly linked listの問...
-
連結リストをソート
-
リスト構造
-
コールバック関数はnullになら...
-
C♯ 2段構造のcontextMenuStrip?
-
「Nz」は何て読むのでしょうか?
-
C言語 二分木探索
-
バブルソートを使って文字列を...
-
【C++】ストリームオブジェクト...
-
別formの多重起動防止
おすすめ情報