0

データベース テーブルから数時間の合計を取得して PDF ファイルに表示するクエリを実行していますが、何らかの奇妙な理由で 0 (ゼロ) が返されません。

 $query = mysql_query("SELECT id, SUM(hours_night), SUM(hours_days) FROM table WHERE invoiceID='".mysql_real_escape_string($invoiceID)."'") or die(mysql_error());
 $result = mysql_num_rows($query);

 $totalhours_night = 0;


     while ($fetch = mysql_fetch_assoc($query)) {

         $totalhours_night += $fetch['SUM(hours_night)'];
     }


$html_output = "Some html and tables markup... " . $totalhours_night . "";

html の出力は正常に動作しますが、それは問題ではありません。しかし問題は、何らかの理由で 0 (ゼロ) が出力されないことです。時間の結果が実際に 1 や 5 のようなものである場合、totalhours は問題なく出力されますが、時間がない場合は 0 を出力する必要があります。

時間がない場合に何も出力しないのは奇妙に見えるので、0 ゼロを表示する必要があります。

ところで、たとえば put number_format($totalhours_night, 2); の場合 0.00 と表示されますが、0 にする必要があります。

4

2 に答える 2

1

三つのこと:

  1. あなたのSQLクエリは間違っています。使用idSUM(..)ない限り表示できませんGROUP BY id(一意である場合、どちらの子供がアイデアを失いますかid
  2. 使用する場合はSUM(..)、のようなエイリアスを付けてください。SUM(..) AS alias1後で PHP を参照してくださいalias1
  3. これが理由でない場合は、var_dump($fetch['alias1']);実際に何が返されるかを試してみてください。(そして、ここに調査結果を投稿して、さらに支援できるようにします)
于 2012-05-25T05:33:06.283 に答える
1

このように整数を文字列として扱います-

echo (string)$totalhours_night;
于 2012-05-25T05:10:19.463 に答える