簡體   English   中英

在游戲中進行網絡檢查,幫助進行邏輯檢查

[英]Web checking in game, help with the logic of it

我正在建立一個包含游戲的網絡。

該游戲旨在獲取在網絡上查找某些信息的積分。
當用戶找到令牌時,一條信息會進行檢查,他/她會獲得該檢查的積分。

這是到目前為止我建立的數據庫:

CREATE TABLE IF NOT EXISTS `user` (
  `userid` int(11) NOT NULL AUTO_INCREMENT,
  `points` int(11) NOT NULL,
  PRIMARY KEY (`userid`)
) ENGINE=MyISAM  DEFAULT AUTO_INCREMENT=1 ;


CREATE TABLE IF NOT EXISTS `checkings` (
  `checkingsid` int(11) NOT NULL AUTO_INCREMENT,
   `userid` int(11) NOT NULL,
  `tokensid` int(11) NOT NULL,  
   `checked` int(11) NOT NULL,
  PRIMARY KEY (`checkingsid`)
) ENGINE=MyISAM  DEFAULT AUTO_INCREMENT=1 ;


CREATE TABLE IF NOT EXISTS `tokens` (
  `tid` int(11) NOT NULL AUTO_INCREMENT,
  `tokensid` int(11) NOT NULL,
   `name` varchar(255) NOT NULL,
   `points` int(11) NOT NULL,
  PRIMARY KEY (`tid`)
) ENGINE=MyISAM  DEFAULT AUTO_INCREMENT=1 ;

這是我的代碼。

它的問題是:我怎么知道是否已經為該令牌給出了積分? 請提供邏輯幫助,我已經失去了范圍,我看不到做到這一點的方法。 我可能已經開始朝錯誤的方向編碼。 我解釋了我要在代碼中嘗試做的事情。

非常感謝

<?php  
                //connected to database and obtained $userId and $tokenID already
              $query0 = "select * from checkings where userid=".$userId." and tokensid=".$tokenId."";
              $result0 = mysql_query($query0);
              $row0 = mysql_fetch_array($result0); 

               if (($row0['checked']!=' ')|| ($row0['checked']!='0')){ // if checked is empty or 0 the user didn't do the checking in this token yet

                  if (($row0['checked']==1)&&($row0['userid']==$userId)&&($row0['tokensid']==$tokenId) ){//the checking has already been inserted

                      //how many points are given for checking in this token? 
                      $query2 = "select points from tokens where tokensid='".$tokenId."'";
                      $result2 = mysql_query($query2);  
                      $row2 = mysql_fetch_array($result2);
                      $pointstoken = $row2['points']; 

                       //How many points have the user? 
                      $query3 = "select points from user where userid='".$userId."'";
                      $result3 = mysql_query($query3);  
                      $row3 = mysql_fetch_array($result3);
                      $pointsUser = $row3['points'];  

                      //user points are updated after checking in this token 
                      $pointsTotal = $pointsUser+$pointstoken;  
                      $query4 = "update user set points=".$pointsTotal." where userid=".$userId." ";
                      $result4 = mysql_query($query4);  



                    }else{//here I do the checking in the token inseting the ids plus a 1 as for checked 
                      $query1 = "insert into checkings (userid, tokensid,checked ) values (".$userId.",".$tokenId.",1)";
                      $result1 = mysql_query($query1);


                  }   

               }else{ echo "Hi, user ".$userId." you've already done the checking in token id ".$tokenId." ";}
     ?> 

檢查表是否存儲用戶找到的檢查?

在這種情況下,請在授予用戶任何積分之前先搜索該表。

如果不是,請為用戶+檢查/令牌創建一個表,以跟蹤用戶找到並被授予的每個項目,並在用戶每次提交發現時搜索該表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM