2017-08-11 7 views
-3

私は20分ごとにシステムタスクがSQLクエリを実行し、データベーステーブル(チケット)の1つに追加するコードを持っています。 私はif文を持っていて、それはnumber(ticket)よりも見つかって、それを使って誰かが私の店から商品を "購入"できるようにしています。 これは、ユーザーがチケットを持っているよりも多くのアイテムを購入することができます(マイナスにバランスをとる)。イムは間違っているのですか?私はによって何かを追加した場合私のif文が私のelse文をスキップするのはなぜですか?

はまた、私は追加するだろうと思った、「チケット」の欄がINTで、好きではない、VARCHARまたは何か

事も、それはわからないイム、数時間前に完全に働いています事故が、今

を見て動作していないのは、問題がここにある "場合($報酬> 4)"

http://prntscr.com/g79q3p

<div class="box"> 
    <div class="contentHeader headerGreen"> 
     <div class="inside"> 
      5 Tickets 
     </div> 
    </div> 
    <ul> 
     <img src="/swf/c_images/album1584/2015HA.gif" align="right"> 
     <li>25k Credits</li> 
     <li>25k Pixels</li> 
     <li>5 Diamonds 
    </ul> 
    <?php 
     if(isset($_POST['buy1'])) { 

      $getRewards = mysql_query("SELECT tickets FROM users WHERE id = '" . $_SESSION['user']['id'] . "'"); 
      while($rewards = mysql_fetch_assoc($getRewards)) { 

       if($rewards > 4) { 
        mysql_query("UPDATE users SET tickets = tickets-5 WHERE id = '" . $_SESSION['user']['id'] . "'") or die(mysql_error()); 
        mysql_query("UPDATE users SET credits = credits+25000 WHERE id = '" . $_SESSION['user']['id'] . "'"); 
        mysql_query("UPDATE users SET activity_points = activity_points+25000 WHERE id = '" . $_SESSION['user']['id'] . "'"); 
        mysql_query("UPDATE users SET vip_points = vip_points+5 WHERE id = '" . $_SESSION['user']['id'] . "'"); 
        echo '     
         <div class="alert alert-sucess"> 
          <strong>Well Done!</strong> Your items have been added. 
         </div>'; 
       } 

       else if($rewards < 5) { 
        echo '     
         <div class="alert alert-error"> 
          <strong>Error:</strong> You Do NOT Have Enough Tickets To Buy This 
         </div>'; 

       } 

       /*else { 
       echo '     
        <div class="alert alert-error"> 
         <strong>Error:</strong> You Do NOT Have Enough Tickets To Buy This 
        </div>';      
       }*/ 

      } 
     } 
    ?> 
    <form method='post'> 
     <input type="submit" value="Buy" name="buy1" style="width: 138px;cursor: pointer;" /> 
    </form> 
</div> 
+2

__everyone__はここにコードを投稿できます。だから、__努力して__それを貼り付けてください。 –

+3

'var_dump($ rewards)'。それは配列のように見えますが、あなたが考えている値ではありません。 – aynber

+0

は数回試してみましたが、ちょうどそれを奇妙にフォーマットしていました。 T-T –

答えて

0

mysql_fetch_assocsの仕組みをご覧ください。

配列を返します。 sqlで指定するフィールドの数は関係ありません。常に配列です。

また、変数のprint_rechoを使用して、動作しないときの内容を確認してください。

if ($rewards["tickets"] > 4) 
    { 

    } 
    else if ($rewards["tickets"] < .... 
+0

$ getRewards = mysql_query( "SELECTのチケットは誰のID = '' '; $ _ SESSION [' user '] [' id ']。' '")); 既にチケットを選択していないのですか? –

+1

http://php.net/manual/ru/function.mysql-fetch-assoc.php例がありますので、例をお読みください。 はい、チケットのみを選択するように指示されましたが、問題はありません.1つまたは複数のフィールドを選択すると常に同じように動作します。少ないフィールド - 高速なSQLクエリですが、それはPHPで同じように表現されました – Dimash

+0

また、みんな、あなたは一番最初ではありません、あなたは何が内部にあるかを確認するprint_r($報酬)を行うことができます知っていますか?それは - デバッグ – Dimash

関連する問題