PHP+SQL在庫集計で在庫の累計がうまくできません(ソース)

解決済みの質問

PHP+SQL在庫集計で在庫の累計がうまくできません(ソース)

▽ソースはこんな感じです。(商品アの在庫表の場合)

//まず、横軸に1~月最終日までの日付を入れる(ここはOK)

$da = 1;
$da2 = $date_of_month;
for($i=$da; $i<=$da2; $i++){


//データベースの在庫数を抽出、日付順に並べる
//データには、それぞれidを振ってありそれをキーにしています

$query="SELECT * FROM zaiko WHERE path = '商品(ア)'
     and date='$year-$month-$i' order by date";
$result = pg_exec($pg, $query);
$在庫数 = pg_result($result, 0, 6);
$id = pg_result($result, 0, 0);


//前日の在庫数を出す
//次の行で今日-1で前日
$i2 = $i-1;
$query="SELECT * FROM zaiko WHERE path = '商品A'
     and date='$year-$month-$i2' order by date";
$result = pg_exec($pg, $query);


//以上を元に累計を計算

$仕入れ数(A) = pg_result($result, 0, 4);
$前日在庫数(B2) = pg_result($result, 0, 6);
$在庫数(B) = $前日在庫数(C2)+$仕入れ数-$売れた数;

$sql="UPDATE zaiko SET pnumber='$pnumber' WHERE id='$id' ";
$result=pg_exec($pg, $sql);

 if (!$result){
 echo "処理に失敗しました";
 pg_close($pg);
 exit;
}

echo "<td width=40 align=right bgcolor=#FFFFFF>$在庫数(C)</td>";
}

これでやると、1度目はうまく計算&表示されるのですが、
ページをリロードしたりすると、
累計数が変わってしまいます。
1度目の計算で表示された最終日の在庫数が、
1日の在庫数に入ってしまうようにも見えますが、
どういう仕組みで、変わってしまうのかわからないのです。

どうぞよろしくお願いいたします。
関連URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=485588

投稿日時 - 2003-02-28 14:04:46

連想キーワード:

QNo.485590

すぐに回答ほしいです

質問者が選んだベストアンサー

> 1度目の計算で表示された最終日の在庫数が、
> 1日の在庫数に入ってしまうようにも見えますが、
おっしゃるとおり、ただ単におなじクエリを2度出しているんじゃないですか?
ページがリロードされれば、当然そこへ書かれているプログラムがサイド実行されます。
こういうことを避けるために、
1.クエリするSQL文をいったんセッションに登録する。
2.クエリが実行されたら(ページが開いたら)そのセッションを破棄する。

これで大丈夫だと思います。
# 試してないので悪しからず

投稿日時 - 2003-02-28 14:23:50

補足

mirurinさん、kusukusuさん、ご回答大変ありがとうございます。
昨日から早速ご指摘を参考に修正作業に入っています。
うまく進展できたら、すぐご報告させていただきます。

投稿日時 - 2003-03-01 13:44:57

ANo.1

1人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(1件中 1~1件目)

ANo.2

ソースが細切れなのでよくわかりませんが、

> $sql="UPDATE zaiko SET pnumber='$pnumber' WHERE id='$id' ";
> $result=pg_exec($pg, $sql);

は何をしているのですか?
ここで在庫テーブルを更新しているからかなぁと思いましたが...

投稿日時 - 2003-02-28 16:08:01

あわせてチェックしたい
  • pg_exec()、pg_result()は、使わない方が良いのか? ...
  • as a result ...
  • PHP+PostgreSQLにおける「pg_exec」と「pg_query」について ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら