0

if ステートメントがあり、問題が発生しています。

それは言う必要があります:

スタミナ フィールドが 0 よりも大きい場合、+ 経験値フィールド、+ ゴールド フィールド、- スタミナ フィールド、それ以外の場合は別のことを行う

フィールドの追加と削除の部分が機能しています。ただし、このifステートメントでは、「何か他のことをする」部分に入れない限り、それを行っていません。ただし、ifステートメントのそのセクションに入れると、0で止まりません。

<?php  

    include '../core/init.php';
    $id = $_SESSION['user_id'];
    $result = mysql_query('SELECT `stamina`FROM `characters` WHERE `id` = "$id"');
    $row = mysql_fetch_row($result);
    $stam = $row[0];

    if ($stam > 0) {
        mysql_query('UPDATE `characters` SET `exp` = `exp` + 1, `gold` = `gold`+10, `stamina`=`stamina`-1 WHERE id = "'.$id.'"');
    } else {

    }

?>

私の接続は、完全に正常に動作する init.php で「必要」です。

方程式を丸くするために、さまざまな方法を試しました。

さて、ステートメントを編集しましたが、半分は機能しています。ここにあります:

<?php

    include '../core/init.php';
    $id = $_SESSION['user_id'];
    $stam = mysql_query('SELECT `stamina` FROM `characters` WHERE `id` = "$id"');

    if ($stam >= 1){
        mysql_query('UPDATE `characters` SET `exp` = `exp` + 1, `gold` = `gold`+10, `stamina`=`stamina`-1 WHERE id = "'.$id.'"');
    } else if ($stam < 1){

    }

?>

新しい問題は、$stam が 1 より小さい場合でも、if ステートメント内でクエリを実行することです。

4

2 に答える 2

1

試す:

$result = mysql_query('SELECT `stamina` FROM `characters` WHERE `id` = ' . $id);

if ($result['stamina'] >= 1){
mysql_query('UPDATE `characters` SET `exp` = `exp` + 1, `gold` = `gold`+10,                      
    `stamina`=`stamina`-1 WHERE id = ' . $id);
} else if ($result['stamina'] < 1){
}

ただし、新しい mysqli_* 関数を調べる必要があります。http://php.net/manual/en/book.mysqli.php

編集: 別の問題に気づきました。最初のクエリでは、単一引用符で囲まれた $id 変数があります。

于 2012-05-28T17:39:12.890 に答える
0

おそらく、それ$staminteger?であることを指定します。試す:

if ((int)$stam >= 1 ){
于 2012-05-28T16:45:33.717 に答える