[PHP-users 29520] Re: フィールドの値の全合計値の求め方

神田@KCS info @ kcs2000.jp
2006年 6月 27日 (火) 10:43:10 JST


神田です。

goungounさんがご指摘のとおり、数値計算するフィールドをtext型にす
るというのは、通常ありえない設定ではないかと思います。数値データ
型にして、NOT NULL指定をするか、DEFAULT 0指定をするかして、NULL
値が入らないように設計しなおしたほうがいいと思います。

また、数値データであるのにNULL値が入っていることがそもそもおかし
いわけですから、そこまでさかのぼって対応したほうがいいのではあり
ませんか。

本件は、そもそもテーブルに格納されている値が不正なことから問題が
発生しているようです。数値データ型に変更いて、SUM関数を用いたほう
がよろしいのではないでしょうか。

----- Original Message ----- 
From: "uto.hideo" <uto.hideo @ jp.fujitsu.com>
To: "PHP-users ML" <php-users @ php.gr.jp>
Sent: Tuesday, June 27, 2006 10:02 AM
Subject: [PHP-users 29517] Re: フィールドの値の全合計値の求め方


> 鈴木さん
>
> 宇都です。コメント有難うございます。
>
>> 取得した結果をvar_dumpとかで確認してみましょう。
>
> var_dump()という関数で出力するとNullがSELECT文で
> (検索されたレコード数-1)個分、表示されました。
> 値が入ってないということでしょうか?
>
> ちなみに、「合計値が表示されています」といっていた
> $yosanの方は、一番目のレコードの合計値が算出されていない
> ことが分かりました。値がおかしい。。。
> この方法ではダメっぽいですね。
>
> 教えて頂いた
>> select sum(yosan), sum(apr) from ... where ...
>
> ですが、
>
> $colname_Rs4 = "0";
> if (isset($_GET['select'])) {
>  $colname_Rs4 = (get_magic_quotes_gpc()) ? $_GET['select'] :
> addslashes($_GET['select']);
> }
> $colname2_Rs4 = "-1";
> if (isset($_GET['select2'])) {
>  $colname2_Rs4 = (get_magic_quotes_gpc()) ? $_GET['select2'] :
> addslashes($_GET['select2']);
> }
> mysql_select_db($database, $user);
> $query_Rs4 = sprintf("SELECT sum(yosan), sum(apr) FROM toushi WHERE year
> LIKE %s AND plant LIKE %s ORDER BY toushi.t_no",
> GetSQLValueString($colname_Rs4, "text"),GetSQLValueString($colname2_Rs4,
> "text"));
> $Rs4 = mysql_query($query_Rs4, $user) or die(mysql_error());
>
> echo $Rs4;
>
> で出力すると「Resource id #7」と表示されてしまいました。
> select sum(yosan), sum(apr) from ... where ...は
> 上記の場合ですと、どんな感じに書き換える必要がありますか?
>
> すみませんが、ご教授頂けますと幸いです。
>
> 宇都
> uto.hideo @ jp.fujitsu.com
>
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
> 




PHP-users メーリングリストの案内