为什么我的if语句跳过了我的else语句?

问题描述:

我有一段代码,每20分钟一个系统任务运行一个SQL查询,并添加到我的一个数据库表(票据)中。 我有,如果如果声明这应该找到比数(票),并用它来让某人“从我的商店”购买物品。 它允许用户购买更多的物品,而不是他们有票(把他们的平衡带到负面),就像它完全跳过我的其他声明一样。有什么我做错了吗?为什么我的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($奖励)'。它看起来像一个数组,而不是你想到的值。 – aynber

+0

尝试了几次,只是格式化它很奇怪。 T-T –

请参阅mysql_fetch_assocs的工作原理。它返回一个数组。无论你在sql中指定了多少个字段 - 它总是一个数组。

还做print_r和您的变量echo,看看里面是什么,当它不工作。

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

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

$ getRewards = mysql_query(“SELECT票据FROM用户WHERE id ='”。$ _ SESSION ['user'] ['id']。“'”); 是不是已经选择“门票”虽然? –

+1

http://php.net/manual/ru/function.mysql-fetch-assoc.php有示例,请仔细阅读示例。 是的,你告诉只选择门票,但没关系,如果你选择一个或几个字段,它的行为总是相同的。更少的字段 - 更快的SQL查询,但它代表了同样的方式在php – Dimash

+0

此外,你们都不是第一个,你知道你可以做print_r($奖励)来看看里面是什么?!它被称为 - 调试 – Dimash