商品の出荷記録を作成しています。
しかし、phpで自動計算した値をデータベースに登録する方法が分かりません。
データ記入のindex.phpとindex.phpから受け取ったデータを計算するcheck.phpを作成しています。
一番下[実際の入力]の★部分が分からないです。
商品種目によって単価×数量で価格が決まるものと、
単価×重量、単価×容量で価格が決まるものの三種類があります。
例えば、スーパーでお肉が1kgあたり80円の商品と、
お菓子で1個100円の商品と、お水が1L当たり120円の
モノがあるという感じです。
例1)
1.単価円×数量(商品の個数)=価格
2.単価円×重量(kg)=価格
3.単価円×容量(L)=価格
そして、今回データベースに記録したいのが、
1.日付、2.商品名、3.個数、4.重量or容量、5.価格です。
重量(kg)と容量(L)に個数が必要なのは、そのkgを抽出するのに
何個、または何羽原材料に使ったか?を記録するため、結局は
全商品個数を入力する必要があります。
例えば、1羽の鳥から100gの重量肉が取れたや、
100個のオレンジから10Lの果汁が抽出できた等です。
今回【index.php】は入力画面となり、
上記 例1)価格の値は空白にしています。
【index.php】
<tr><th>価格</th><td><span class="yo">円</span></td></tr>
次の【check.php】にて計算して出力しようと考えました。
$kakaku=$jyuryo*$tanka;
⇒$jyuryoの変数には重量(kg)と容量(L)のどちらかの値が入っています。
例1)の2と3の場合の価格になります。
$tkakaku=$kosu*$tanka;
⇒$kosuの変数には商品の数量値が入っています。
例1)の1の場合の価格になります。
そして、【check.php】のテーブルに価格の計算結果を表示させています。
$syouhinで商品1をセレクトした場合は、例1)の1の計算をして、
それ以外の商品は例1)の2と3の計算をして表示させるというものです。
print "<tr><th>価格</th><td>";
switch($syouhin){
case '1': print $tkakaku;break;
default: print $kakaku;
}
print "円</td></tr>
この計算結果を変数に入れる方法が分からないのです。
データベースに計算結果を登録するには変数が必要と考えています。
もし、変数がなくてもデータベースに登録する方法がございましたら、
教えて下さい。
[実際の入力]
【index.php】
<form action="check.php" method="post" accept-charset="utf-8">
<table border="2" align="center">
<caption>出荷記録</caption>
<tr><th>日付</th><td><input name="hiduke" type="date" value="yyyy-mm-dd"></td></tr>
<tr><th>商品名</th><td><select name="syouhin">
<option value="1">商品1</option>
<option value="2">商品2</option>
<option value="3">商品3</option>
</select>
</td></tr>
<tr><th>個数</th><td><input name="kosu" type="text" size="10"><span class="yo">個</span></td></tr>
<tr><th>重量orリットル</th><td><input name="jyuryo" type="text" size="10"><span class="yo">kg・L</span></td></tr>
<tr><th>単価</th><td><input name="tanka" type="text" size="10"><span class="yo">円</span></td></tr>
★<tr><th>価格</th><td><span class="yo">円</span></td></tr>★
</table>
</form>
【check.php】
<?php
$dsn='mysql:dbname=kaka;host=localhost';
$user='root';
$password='';
$dbh=new PDO($dsn,$user,$password);
$dbh->query('SET NAMES UTF-8');
$hiduke=$_POST['hiduke'];
$syouhin=$_POST['syouhin'];
$kosu=$_POST['kosu'];
$jyuryo=$_POST['jyuryo'];
$tanka=$_POST['tanka'];
$kakaku=$jyuryo*$tanka;
$tkakaku=$kosu*$tanka;
if($hiduke==''){print '<table border="2" align="center" width="450"><caption>出荷記録</caption><tr><th>日付</th><td class="ng">日付が入力されていません。</td></tr>';}
else{print '<table border="2" align="center" width="450"><caption>出荷記録</caption><tr><th>日付</th>'; print "<td>$hiduke</td></tr>";}
print "<tr><th>商品名</th><td>";
switch ($syouhin){
case '1': print '商品1';break;
case '2': print '商品2';break;
case '3': print '商品3';break;
default: print '商品が指定されていません。<br />';
}
print "</td></tr>";
if($kosu==''){print "<tr><th>個数</th><td>個数が入力されていません。</td></tr>";}
else{print "<tr><th>個数</th><td>$kosu 個</td></tr>";}
if($jyuryo==''){print '<tr><th>重量orリットル</th><td>重量が指定されていません。</td></tr>';}
else{print "<tr><th>重量orリットル</th><td>$jyuryo";
switch($syouhin){
case '1': print 'L';break;
default: print 'kg';
}
print "</td></tr>";
if($tanka==''){print "<tr><th>単価</th><td>単価が入力されていません。</td></tr>";}
else{print "<tr><th>単価</th><td>$tanka 円</td></tr>";}
★print "<tr><th>価格</th><td>";
switch($syouhin){
case '1': print $tkakaku;break;
default: print $kakaku;
}
print "円</td></tr></table>";}★
if($hiduke==''||$syouhin==''||$kosu==''||$jyuryo==''||$tanka==''){print '<form accept-charset="utf-8"><div class="botan"><div class="data1"><input type="button" onclick="history.back()" value="戻る"></div></div></form>';}
else{
print '<form method="post" action="index.php" accept-charset="utf-8"><div class="botan"><div class="data1"><input type="button" onclick="history.back()" value="戻る"></div>
<div class="reset1"><input name="nyryoku" type="submit" value="入力確定"></div></form>';}
$sql='INSERT INTO shipping (hiduke,syouhin,kosu,jyuryo,tanka) VALUES("'.$hiduke.'","'.$syouhin.'","'.$kosu.'","'.$jyuryo.'","'.$tanka.'")';
$stmt=$dbh->prepare($sql);
$stmt->execute();
$dbh=null;
?>
No.1ベストアンサー
- 回答日時:
>データベースに計算結果を登録するには変数が必要と考えています。
いまいち何を言いたいかわかりません。
>1.日付、2.商品名、3.個数、4.重量or容量、5.価格です。
を入れたいのにINSERT文が
>INSERT INTO shipping (hiduke,syouhin,kosu,jyuryo,tanka)
になっているのは何か意味があるのでしょうか?
tankaに価格をいれるとは思えませんが・・・
仮にjyuryoが0より大きいときはjyuryo*tanka、
kosuが0より大きいときはkosu*tanka
をkakakuの定義とすれば・・・
$kakaku=0;
if($jyuryo>0) $kakaku=$jyuryo*$tanka;
if($kosu>0) $kakaku=$kosu*$tanka;
$data=array($hiduke,$syouhin,$kosu,$jyuryo,$kakaku);
$sql='INSERT INTO shipping (hiduke,syouhin,kosu,jyuryo,tanka) VALUES(?,?,?,?,?)';
$stmt=$dbh->prepare($sql);
$stmt->execute($data);
的な処理を想定しているのでしょうか?
返信いただきありがとうございます。
私の未熟な質問で語弊を招いてしまいすいません。
結果から申し上げますと解決しました!
yambejpさんから回答いただいたこの部分$kakaku=$kosu*$tanka;を参考にして、switch文にそのまま計算式を入れ、その結果をprintで出力すれば・・・。
私の中ではswotcj文に$kakakuの変数をそのまま入れるという発想がなかったのが苦しんだ原因でした。
ありがとうございました。
【変更前】
switch($syouhin){
case '1': print $tkakaku;break;
default: print $kakaku;
}
print "円</td></tr></table>";}
【変更後】
switch($syouhin){
case '8': $kakaku=$kosu*$tanka;break;
default: $kakaku=$jyuryo*$tanka;break;
}
print "$kakaku";
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルに送信ボタンをつける
-
split関数とexplode関数の違い...
-
PHPを勉強中なのですが一点わか...
-
アクセスキーについて
-
null代入とunset()の違いについて
-
日付を基にした乱数生成
-
変数 $x=1と$y=1 参考書は間違...
-
$_SERVER["QUERY_STRING"]の仕...
-
$str='AbcAdefgA';の中のAの出...
-
Dosブロンプトでtabを出力したい
-
wordの差し込み印刷で文字...
-
「取得先」という表現について
-
バッチファイルでpingの結果を...
-
excel access連携 このテーブル...
-
DTOとEntityの差は何ですか。
-
shシェルスクリプト 空白行の...
-
アロー演算子について
-
switch()文で値の大小比較
-
ファイル名に日付の挿入
-
積立投資してます。現在平均取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<A href ~で複数の値を渡したい
-
日付を基にした乱数生成
-
テーブルに送信ボタンをつける
-
「次の10件を表示する」のよ...
-
PHPでwait処理ってできます?
-
なぜエラーが出るのか分からな...
-
null代入とunset()の違いについて
-
PHPのif文「POSTしていな...
-
if (isset($_a)&&$_a)この意味は
-
microtime関数は、結構イイカゲ...
-
アクセスキーについて
-
POSTされたかどうか確かめる方...
-
複合演算子につきまして!
-
Luaにて、and or の組み合わせ...
-
$_SERVER["QUERY_STRING"]の仕...
-
PHPでのNULLの正規表現
-
PHPのGETパラメーターの検索値...
-
データ)表示件数について
-
SQLにあるデータをWEB画面に出...
-
vbYesNoの使い方
おすすめ情報