質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

4回答

4146閲覧

カートの合計金額に可変する送料の足し方を教えてください。

mas33

総合スコア16

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/01/05 04:12

あまり綺麗なコードではないのですが、カートの中身です。
if文で価格や商品によって送料なしか700円足すかにしてるのですが、
下から四行目の合計を正しく表示させるには何を足せばいいか、分かる方いたら教えてください。
宜しくお願い致します。

<tr> <td>商品</td> <td>商品画像</td> <td>価格</td> <td>数量</td> <td>小計</td> <td>削除</td> </tr> </thead> <?php $zenbu = 0; for($i=0;$i<$max;$i++) { ?> <tbody> <tr> <td data-label="商品">&nbsp;<?php print $pro_name[$i]; ?></td> <td class="p-img" data-label="商品画像"><?php print $pro_gazou[$i]; ?></td> <td data-label="価格"><?php $tax = 0.08; //消費税 $total = $pro_price[$i]+ $pro_price[$i]*$tax; $numTmp = $total; $num = number_format($numTmp); echo $num; ?>円</td> <td data-label="数量"><input type="text" name="kazu<?php print $i; ?>" value="<?php print $kazu[$i]; ?>"class="kazu1 text-center"></td> <td data-label="小計"><?php $gokei = $total*$kazu[$i]; $numTmp = $gokei; $num2 = number_format($numTmp); echo $num2; ?>円</td> <td data-label="削除"><input type="checkbox" name="sakujo<?php print $i; ?>"></td> </tr> </tbody> <?php $zenbu += $pro_price[$i]*$kazu[$i]; } ?> <tr> <td colspan="4">送料</td> <td colspan="2"><?php if ($kategorie == 'OMAKASE FLOWERS') { print '0'; } else if ($zenbu > 8640) { print '0'; } else { print '700円'; } ?></td> </tr> <tr> <td colspan="4">合計</td> <td colspan="2"><?php $num3 = $zenbu+$zenbu*$tax; $numTmp = $num3; $num4 = number_format($numTmp); echo $num4; ?>円</td> </tr> <input type="hidden" name="max" value="<?php print $max; ?>"> コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

Before

php

1<td colspan="2"><?php if ($kategorie == 'OMAKASE FLOWERS') 2{ 3 print '0'; 4} 5else if ($zenbu > 8640) 6{ 7 print '0'; 8} 9else 10{ 11 print '700円'; 12} 13 ?></td> 14</tr> 15<tr> 16<td colspan="4">合計</td> 17<td colspan="2"><?php $num3 = $zenbu+$zenbu*$tax; $numTmp = $num3; $num4 = number_format($numTmp); echo $num4; ?></td>
After

php

1<td colspan="2"><?php if ($kategorie == 'OMAKASE FLOWERS') 2{ 3 $souryo = 0; 4 echo $souryo; 5} 6else if ($zenbu > 8640) 7{ 8 $souryo = 0; 9 echo $souryo; 10} 11else 12{ 13 $souryo = 700; 14 echo $souryo . '円'; 15} 16 ?></td> 17</tr> 18<tr> 19<td colspan="4">合計</td> 20<td colspan="2"><?php 21 $num3 = $zenbu+$zenbu*$tax; 22 $numTmp = $num3; 23 $num4 = number_format($numTmp + $souryo); 24 echo $num4; 25?></td>

ただし、上のコードは送料(700円)が税込み価格である前提です。

税別で"700円"の場合は、$num3 = $zenbu+$zenbu*$tax;以降のコードを適宜 修正してください。

投稿2017/01/05 05:06

KiyoshiMotoki

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mas33

2017/01/05 06:03

ありがとうございました。こちらの方がエラーにならなかったので採用しました。 すみません丁寧に教えていただいたのに… 本当にありがとうございました。
guest

0

せっかく前の部分でif分岐させているので、そこで合計を変数化し、合計出力部分でその変数をechoすればよろしいのでは?
それなら足し算ですし。

投稿2017/01/05 04:19

takepieee

総合スコア686

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mas33

2017/01/05 04:40

ありがとうございます。$souryoに入れてみたのですが、PHPがまだ勉強不足で上手くいかずに… もしよろしければ具体的に教えていただけませんか?
takepieee

2017/01/05 05:39

そのまま回答を書くのも趣旨に反しますので、ほぼ回答で・・ if ($kategorie == 'OMAKASE FLOWERS') { print '0'; $souryou = 0; } else if ($zenbu > 8640) { print '0'; $souryou = 0; } else { print '700円'; $souryou = 700; } // ここに合計の式。$total = 商品全部+消費税+$souryou <td colspan="4">合計</td> <td colspan="2"><?php echo $total; ?></td>
guest

0

ベストアンサー

抜粋でわかりにくいかもしれませんが…

PHP

1<?php 2$total = 0; 3$tax = 0.08; 4for($i=0;$i<$max;$i++) { 5 6 $shokei = $pro_price[$i] + $pro_price[$i] * $tax; 7 $total += $shokei; 8 9/* 10HTML(テーブル部分)は省略します 11*/ 12} 13 14if ($kategorie == 'OMAKASE FLOWERS' || $zenbu > 8640) { 15 $souryo = 0; 16} else { 17 $souryo = 700 * $tax; 18} 19 20$total += $souryo; 21?> 22 23<tr> 24<td colspan="4">合計</td> 25<td colspan="2"><?php echo number_format($total); ?></td> 26</tr> 27 28

個人的には計算するのであれば一度変数に入れてやって、表示させるときにnumber_formatや「円」などを付けるようにしてます。
小計用・合計用・送料用の変数を用意してあげるといいかも。
あと、消費税は固定なのでfor文の外に出してやっても問題ないはずです。

投稿2017/01/05 05:17

mrx

総合スコア54

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mas33

2017/01/05 05:34

丁寧で綺麗なコードをありがとうございます。 勉強になりました。
guest

0

可変する送料を別途変数に入れておいて足せばいいのでは?

投稿2017/01/05 04:19

kei344

総合スコア69364

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mas33

2017/01/05 04:46

ありがとうございます。$souryoに入れてみたのですが、PHPがまだ勉強不足で上手くいかずに… もしよろしければ具体的に教えていただけませんか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問