「平成」を感じるもの

環境:MySQL4.0.25 と PHP4.3.11の組み合わせで、SQLで

select data1 from mytable

として、取り出したdata1には、次のようにNULLとゼロと数値が
混在しています。

4334.0028
8893.212233
4334.2
<NULL>
0
2.002
9893

桁がバラバラなので、これらに number_format(data1,2) としたら、
NULLまでもが0.00と表示されてしまいます。

今回、NULLとゼロ(0.00)は区別しなければならなので、

echo ($data1 == '') ? '' : number_format($data1,2) ;

としましたが、効きません。WWWでイコール3つ(===)演算子を
使えば回避できるような情報を見かけましたが

echo ($data1 !== '') ? number_format($data1,2) : '' ;

としても、状況変わらず。何かうまい方法はないでしょうか。

なお、SQL側で format(data1,1) とするのはナシとしてご教示いただけ
ますと幸いです(data1でいろいろ計算するのでformatされた値が
出てくると誤差の原因になってしまうためです)。

A 回答 (3件)

is_null($data1)とかis_numeric($data1)で判定したらどうでしょうか

    • good
    • 0
この回答へのお礼

is_nullで切り抜けられました。
大変助かりました。
ありがとうございました。

お礼日時:2006/02/17 18:41

echo ($data1 == NULL) ? '' : number_format($data1,2) ;



これではいかがでしょう。
    • good
    • 0
この回答へのお礼

#1,2さんのis_nullでとりあえず解決しましたが

$data1 == NULL
こんな書き方できたのですね。

これが使えない(と思い込んでいた)ために
いままでずいぶん不便しました。

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

お礼日時:2006/02/17 18:43

echo (is_null($data1)) ? '': number_format();


でいかがでしょう?
    • good
    • 0
この回答へのお礼

ご教示のis_nullで解決しました。
こんなことできるのですね、
ありがとうございました。

お礼日時:2006/02/17 18:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報