私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

スレッド

└◇243:
何故なんだろう [ダラス] 01/07 16:16

 └◇244:Re:何故なんだろう [moon] 01/07 19:36
  └◇247:Re[2]:何故なんだろう [ダラス] 01/08 17:16<-last


243● 何故なんだろう[ ダラス ] 2003 01/07 16:16
私は物を売ると経験値がはいるようにしているんですが

$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文で分岐できるのでしょうか?
スレッド一覧


244● Re:何故なんだろう[ 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つ使用しているのでコピペ注意)
スレッド一覧


247● Re[2]:何故なんだろう[ ダラス ] 2003 01/08 17:16
> ええと、エラー原因は$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つ使用しているのでコピペ注意)

ありがとうございます。正常に動作しだしました。
スレッド一覧

CGIROOM