• 締切済み

売上表示のプログラムをしたいのですが。

ショッピングカートのcart_buy.phpの中で精算ボタンを押したら精算完了したのちuriage.phpで自動的に売上が入力されるというプログラムを作りたいのですが例えばAさんが購入したときにパソコンとプリンターを購入したとしたらパソコンは反映されますがプリンターは反映されず同じ購入者が複数の売上表示が行なえないのです。どうしたらうまくいくでしょうか。アドバイスお願いします。 uriage.php <?php require_once 'DB.php'; $dsn = "mysql://user:password@localhost/sampledb2"; $db = DB::connect($dsn); if (PEAR::isError($db)) { die($db->getMessage()); } $sql = 'select * from syohin_uriage'; $res =& $db->query($sql); while ($row =& $res->fetchRow(DB_FETCHMODE_OBJECT)){ print "<tr><td><center>$row->id</center></td>"; print "<td><center>$row->name</center></td>"; print "<td><center>$row->tanka</center></td>"; print "<td><center>$row->num</center></td>"; print "<td><center>$row->ss</center></td></tr>"; } $db->disconnect(); ?>

みんなの回答

  • hkd9001
  • ベストアンサー率48% (99/204)
回答No.2

レスありがとうございます。 示してくださった「 cart_buy.php 」「 cart_buy2.php 」のコード拝見しました。で、追加でお尋ねです… 両方とも、テーブル syohin に対して発行しているSQL文が「 select … 」、すなわち参照になっています。ということは、これとは別に テーブル syohin_uriage にデータの書き込み(「 insert into syohin_uriage … 」とか)をしている php プログラムがあるのではないかな、とお察しします。その、書き込みを行なうルーチンに なにか問題がありそうな気がします。せっかく2つもコード示してくださったのにごめんなさい。よろしければ、またレスください。

  • hkd9001
  • ベストアンサー率48% (99/204)
回答No.1

こんばんは。 まず、次の点をチェックしてみてください:  cart_buy.php の中で精算ボタンを押して精算完了したのち、DBサーバ(MySQLなど)のコマンド入力により、テーブル syohin_uriage の中身をチェックしてみましょう。  Aさんが購入したパソコンとプリンターのデータが両方きちんと入っていたら、uriage.php に原因がありそうですし、パソコンしか入っていなかったならば cart_buy.php を疑う必要がありそうですね。ご参考まで。

nainai446
質問者

補足

回答ありがとうございます。 MySQLのほうは片方のデータしか入ってませんでした。 やはりcartbuy.phpに問題ありそうです。 cartbuyのプログラム。 <?php $link = mysql_connect('localhost', 'user', 'password'); $db_selected = mysql_select_db('sampledb', $link); $sum = 0; foreach($_SESSION['cart'] as $code => $num) { $result = mysql_query("SELECT code,name,tanka,info FROM syohin where code=$code"); $row = mysql_fetch_array($result); $ss = 1.05 * $num * $row['tanka']; $a = round($ss, 0); print "<tr><td><center>{$row['name']}</center></td><td><center>{$row['tanka']}円</center></td>"; print "<td><center>$num</center></td><td><center>{$a}円</center></td></tr>\n"; $sum += $ss; } print "<tr><td colspan='2'> </td><td>合計(税込み)</td><td><center>{$sum}円</center></td></tr>\n"; mysql_close($link); ?> そして売上が完了しました、と表示するcartbuy2.phpのプログラム。 <?php $link = mysql_connect('localhost', 'user', 'password'); $db_selected = mysql_select_db('sampledb', $link); $sum = 0; foreach($_SESSION['cart'] as $code => $num) { $result = mysql_query("SELECT code,name,tanka,info FROM syohin where code=$code"); $row = mysql_fetch_array($result); $ss =1.05 * $num * $row['tanka']; $a = round($ss, 0); print "<tr><td><center>{$row['name']}</center></td><td><center>{$row['tanka']}円</center></td>"; print "<td><center>$num</center></td><td><center>{$ss}円</center></td></tr>\n"; $sum += $ss; } print "<tr><td colspan='2'> </td><td>合計(税込み)</td><td><center>{$sum}円</center></td></tr>\n"; mysql_close($link); ?> になります。