発言者: moon
発言日: 2003 01/07 19:36
> 私は物を売ると経験値がはいるようにしているんですが
>
> $pc = substr($sts, 0, 4);
> $pfexp = int($price / $pc);
> if($pc == 0){ $pfexp = int($price / 25); }
> if($pfexp >= 10) { $pfexp=10; }
> if($pfexp <= 0) { $pfexp=0; }
> $pexp += $pfexp;
>
> で質屋価格が0の品を買った時500エラーになるんです。
> それで3行目の
> if($pc == 0){ $pfexp = int($price / 25); }
> を
> if(!$pc){ $pc = 1; }
> とか
> if($pc = 0){ $pc = 1;}
> といった風にいろいろ変えてやってみたんですが
> やはり質屋価格0の品を買うと500エラーになります。
> おそらく上記のif文がうまく機能してないので
> 分母が0になり、その結果500エラーになるとおもうんですが
> どうすればうまくif文で分岐できるのでしょうか?
ええと、エラー原因は$pfexp = int($price / $pc);で、エラーメッセージは、Illegal division by zero〜 というものだと思います。
上記は、0で割ったときのエラーなので、
$pfexp = int($price / $pc);
if($pc == 0){ $pfexp = int($price / 25); }
を、
if($pc==0){
$pfexp = int($price / 25); # 質屋買取価格が0の場合
}
else{
$pfexp = int($price / $pc); # 通常の場合
}
のように変更すればエラーが出なくなると思います。(タブの代わりに全角空白を2つ使用しているのでコピペ注意)
▼関連発言
│
└◆243:何故なんだろう [ダラス] 01/07 16:16
└◆244:Re:何故なんだろう [moon] 01/07 19:36
└◆247:Re[2]:何故なんだろう [ダラス] 01/08 17:16<-last