mysql optimization: don't quote integers as strings in WHERE
[e-DoKo.git] / include / game.php
index 6c6b12bdac6e4b542a201a27811856d84485088e..0ca24544939bd8e707bdd06c19b363b94b208d8e 100644 (file)
@@ -184,7 +184,7 @@ if( myisset('call') )
 
 
 /* get time from the last action of the game */
-$r = DB_query_array("SELECT mod_date from Game WHERE id='$gameid' " );
+$r = DB_query_array("SELECT mod_date from Game WHERE id=".DB_quote_smart($gameid));
 $gameend = time() - strtotime($r[0]);
 
 /* handle comments in case player didn't play a card, allow comments a week after the end of the game */
@@ -398,11 +398,11 @@ switch($mystatus)
       if(!( $mygametype == 'solo' && $mygamesolo == 'silent') )
        echo "  <li onclick=\"hl(0);\" class=\"old\"><a href=\"#\">Pre</a></li>\n";
 
-    $result = DB_query('SELECT Trick.id '.
-                      'FROM Trick '.
-                      "WHERE Trick.game_id='".$gameid."' ".
-                      'GROUP BY Trick.id '.
-                      'ORDER BY Trick.id ASC');
+    $result = DB_query('SELECT Trick.id'.
+                      ' FROM Trick'.
+                      " WHERE Trick.game_id=".DB_quote_smart($gameid).
+                      ' GROUP BY Trick.id'.
+                      ' ORDER BY Trick.id ASC');
     $trickNR   = 1;
     $lasttrick = DB_get_max_trickid($gameid);
 
@@ -555,15 +555,15 @@ switch($mystatus)
 
        if($Nsickness>1)
          {
-           $messages[] = 'You selected more than one sickness, please go back '.
-             "and answer the <a href=\"$INDEX?action=game&amp;me=$me&amp;in=yes\">question</a> again.";
-
+           $messages[] = sprintf(_('You selected more than one sickness, please go back '.
+                                   'and answer the <a href="%s">question</a> again.'),
+                                 $INDEX.'?action=game&amp;me=$me&amp;in=yes');
            break;
          }
        else
          {
            /* everything is ok, save what user said and proceed */
-           $messages[] = 'Processing what you selected in the last step...';
+           $messages[] = _('Processing what you selected in the last step...');
 
            /* check if this sickness needs to be handled first */
            $gametype    = DB_get_gametype_by_gameid($gameid);
@@ -577,7 +577,9 @@ switch($mystatus)
                DB_set_solo_by_hash($me,$_REQUEST['solo']);
                DB_set_sickness_by_hash($me,'solo');
 
-               $messages[] = "<br />Seems like you want to play a {$_REQUEST['solo']} solo. Got it.<br />\n";
+               $messages[] = '<br />'.
+                 sprintf(_('Seems like you want to play a %s solo. Got it.'),$_REQUEST['solo']).
+                 "<br />\n";
 
                if($gametype == 'solo' && $startplayer<$mypos)
                  {}/* do nothing, since someone else already is playing solo */
@@ -878,7 +880,8 @@ switch($mystatus)
                  }
              }
            else
-             $messages[] = "Please, <a href=\"$INDEX?action=game&amp;me=$me\">start</a> the game.<br />\n";
+             $messages[] = sprintf(_('Please, <a href="%s">start</a> the game.'),$INDEX."?action=game&amp;me=$me").
+               "<br />\n";
          }
        else
          {
@@ -888,7 +891,8 @@ switch($mystatus)
 
            $whoid = DB_get_userid('gameid-position',$gameid,$who);
            if($whoid==$myid)
-             $messages[] =  "Please, <a href=\"$INDEX?action=game&amp;me=$me\">start</a> the game.<br /\n";
+             $messages[] = sprintf(_('Please, <a href="%s">start</a> the game.'),$INDEX."?action=game&amp;me=$me").
+               "<br /\n";
            else
              {
                $whohash = DB_get_hash_from_game_and_pos($gameid,$who);
@@ -941,7 +945,7 @@ switch($mystatus)
        if($exchange >0)
          {
            $result = DB_query("UPDATE Hand_Card SET hand_id='$partnerhand'".
-                              " WHERE hand_id='$myhand' AND card_id=".DB_quote_smart($exchange));
+                              " WHERE hand_id=".DB_quote_smart($myhand)." AND card_id=".DB_quote_smart($exchange));
            DB_add_exchanged_card(DB_quote_smart($exchange),$myhand,$partnerhand);
          };
       }
@@ -978,7 +982,7 @@ switch($mystatus)
              }
          }
        else
-         $messages[]= "Please, <a href=\"$INDEX?action=game&amp;me=$me\">start</a> the game.";
+         $messages[]= sprintf(_('Please, <a href="%s">start</a> the game.'),$INDEX."?action=game&amp;me=$me");
       }
 
     /* the following is part A) of what needs to be done */
@@ -1059,7 +1063,7 @@ switch($mystatus)
                /* update game status */
                cancel_game('trump',$gameid);
 
-               $messages[] = 'Game '.DB_format_gameid($gameid).' has been canceled.';
+               $messages[] = sprintf(_('Game %s has been canceled.'),DB_format_gameid($gameid));
                break;
              }
            else
@@ -1096,7 +1100,7 @@ switch($mystatus)
                DB_add_exchanged_card($card,$userhand,$myhand);
 
            /* copy trump from player A to B */
-           $result = DB_query("UPDATE Hand_Card SET hand_id='$myhand' WHERE hand_id='$userhand' AND card_id<'27'" );
+           $result = DB_query("UPDATE Hand_Card SET hand_id='$myhand' WHERE hand_id=".DB_quote_smart($userhand)." AND card_id<'27'" );
 
            /* reload cards */
            $mycards = DB_get_hand($me);
@@ -1173,7 +1177,7 @@ switch($mystatus)
                    set_language($myid,'uid');
                  }
              }
-           $messages[] = "Please, <a href=\"$INDEX?action=game&amp;me=$me\">continue</a> here";
+           $messages[] = sprintf(_('Please, <a href="%s">continue</a> here'),$INDEX."?action=game&amp;me=$me");
          }
       }
     break;
@@ -1188,19 +1192,19 @@ switch($mystatus)
     switch($gamestatus)
       {
       case 'cancel-noplay':
-       $messages[] = "The game has been canceled due to the request of one player.</p><p>If this was a mistake all 4 players need to send an Email to $ADMIN_NAME at $ADMIN_EMAIL requesting that the game should be restarted.";
+       $messages[] = _("The game has been canceled due to the request of one player.</p><p>If this was a mistake all 4 players need to send an Email to $ADMIN_NAME at $ADMIN_EMAIL requesting that the game should be restarted.");
        break;
       case 'cancel-timedout':
-       $messages[] = "The game has been canceled because one player wasn't responding.<br />If this was a mistake all 4 players need to send an Email to $ADMIN_NAME at $ADMIN_EMAIL requesting that the game should be restarted.";
+       $messages[] = _("The game has been canceled because one player wasn't responding.<br />If this was a mistake all 4 players need to send an Email to $ADMIN_NAME at $ADMIN_EMAIL requesting that the game should be restarted.");
        break;
       case 'cancel-nines':
-       $messages[] = 'The game has been canceled because one player had too many nines.';
+       $messages[] = _('The game has been canceled because one player had too many nines.');
        break;
       case 'cancel-lowtrump':
-       $messages[] = 'The game has been canceled because one player had low trump.';
+       $messages[] = _('The game has been canceled because one player had low trump.');
        break;
       case 'cancel-trump':
-       $messages[] = 'The game has been canceled because nobody wanted to take the trump.';
+       $messages[] = _('The game has been canceled because nobody wanted to take the trump.');
        break;
       }
     /* for these two types, we shouldn't show the cards, since we might want to restart the game */
@@ -1286,20 +1290,20 @@ switch($mystatus)
     $result = DB_query('SELECT Hand_Card.card_id as card,'.
                       '       Hand.position as position,'.
                       '       Play.sequence as sequence, '.
-                      '       Trick.id, '.
+                      '       Trick.id,'.
                       "       GROUP_CONCAT(CONCAT('<span>',User.fullname,': ',Comment.comment,'</span>')".
                       "                    SEPARATOR '\n' ), ".
-                      '       Play.create_date, '.
-                      '       Hand.user_id '.
-                      'FROM Trick '.
-                      'LEFT JOIN Play ON Trick.id=Play.trick_id '.
-                      'LEFT JOIN Hand_Card ON Play.hand_card_id=Hand_Card.id '.
-                      'LEFT JOIN Hand ON Hand_Card.hand_id=Hand.id '.
-                      'LEFT JOIN Comment ON Play.id=Comment.play_id '.
-                      'LEFT JOIN User On User.id=Comment.user_id '.
-                      "WHERE Trick.game_id='".$gameid."' ".
-                      'GROUP BY Trick.id, sequence '.
-                      'ORDER BY Trick.id, sequence ASC');
+                      '       Play.create_date,'.
+                      '       Hand.user_id'.
+                      ' FROM Trick'.
+                      ' LEFT JOIN Play ON Trick.id=Play.trick_id'.
+                      ' LEFT JOIN Hand_Card ON Play.hand_card_id=Hand_Card.id'.
+                      ' LEFT JOIN Hand ON Hand_Card.hand_id=Hand.id'.
+                      ' LEFT JOIN Comment ON Play.id=Comment.play_id'.
+                      ' LEFT JOIN User On User.id=Comment.user_id'.
+                      " WHERE Trick.game_id=".DB_quote_smart($gameid).
+                      ' GROUP BY Trick.id, sequence'.
+                      ' ORDER BY Trick.id, sequence ASC');
     $trickNR   = 0;
     $lasttrick = DB_get_max_trickid($gameid);
 
@@ -1453,7 +1457,7 @@ switch($mystatus)
            DB_update_game_timestamp($gameid);
 
            /* mark card as played */
-           DB_query("UPDATE Hand_Card SET played='true' WHERE hand_id='$handid' AND card_id=".
+           DB_query("UPDATE Hand_Card SET played='true' WHERE hand_id=".DB_quote_smart($handid)." AND card_id=".
                     DB_quote_smart($card));
 
            /* get trick id or start new trick */
@@ -1619,7 +1623,7 @@ switch($mystatus)
                 */
 
                if($winner>0)
-                 DB_query("UPDATE Trick SET winner='$winner' WHERE id='$trickid'");
+                 DB_query("UPDATE Trick SET winner='$winner' WHERE id=".DB_quote_smart($trickid));
                else
                  $messages[] = "ERROR during scoring";
 
@@ -1713,10 +1717,10 @@ switch($mystatus)
                                   ' LEFT JOIN Play ON Trick.id=Play.trick_id'.
                                   ' LEFT JOIN Hand_Card ON Hand_Card.id=Play.hand_card_id'.
                                   ' LEFT JOIN Card ON Card.id=Hand_Card.card_id'.
-                                  " WHERE Hand.game_id='$gameid'".
+                                  " WHERE Hand.game_id=".DB_quote_smart($gameid).
                                   ' GROUP BY User.fullname' );
-               $email_message  = "The game is over. Thanks for playing :)\n";
-               $email_message .= "Final score:\n";
+               $email_message  = _("The game is over. Thanks for playing :)")."\n";
+               $email_message .= _("Final score:")."\n";
                while( $r = DB_fetch_array($result) )
                  $email_message .= '   '.$r[0].'('.$r[2].') '.$r[1]."\n";
 
@@ -1726,9 +1730,9 @@ switch($mystatus)
                                   ' LEFT JOIN Play ON Trick.id=Play.trick_id'.
                                   ' LEFT JOIN Hand_Card ON Hand_Card.id=Play.hand_card_id'.
                                   ' LEFT JOIN Card ON Card.id=Hand_Card.card_id'.
-                                  " WHERE Hand.game_id='$gameid'".
+                                  " WHERE Hand.game_id=".DB_quote_smart($gameid).
                                   ' GROUP BY Hand.party' );
-               $email_message .= "\nTotals:\n";
+               $email_message .= "\n"._("Totals:")."\n";
                $re     = 0;
                $contra = 0;
                while( $r = DB_fetch_array($result) )
@@ -1904,31 +1908,31 @@ switch($mystatus)
                  /* add score points to email */
                  $email_message .= "\n";
                  $Tpoint = 0;
-                 $email_message .= " Points Re: \n";
+                 $email_message .= " "._("Points Re:")." \n";
                  $queryresult = DB_query('SELECT score FROM Score '.
-                                         "  WHERE game_id=$gameid AND party='re'");
+                                         "  WHERE game_id=".DB_quote_smart($gameid)." AND party='re'");
                  while($r = DB_fetch_array($queryresult) )
                    {
                      $email_message .= '   '.$r[0]."\n";
                      $Tpoint ++;
                    }
-                 $email_message .= " Points Contra: \n";
+                 $email_message .= " "._("Points Contra:")." \n";
                  $queryresult = DB_query('SELECT score FROM Score '.
-                                         "  WHERE game_id=$gameid AND party='contra'");
+                                         "  WHERE game_id=".DB_quote_smart($gameid)." AND party='contra'");
                  while($r = DB_fetch_array($queryresult) )
                    {
                      $email_message .= '   '.$r[0]."\n";
                      $Tpoint --;
                    }
-                 $email_message .= " Total Points (from the Re point of view): $Tpoint\n";
+                 $email_message .= " "._("Total Points (from the Re point of view):")." $Tpoint\n";
                  $email_message .= "\n";
 
                  $session = DB_get_session_by_gameid($gameid);
                  $score = generate_score_table($session);
 
-                 $email_message .= "Score Table:\n";
+                 $email_message .= _("Score Table:")."\n";
                  $email_message .= format_score_table_ascii($score);
-                 $email_message .= "\nUse these links to have a look at game ".DB_format_gameid($gameid).": \n";
+                 $email_message .= "\n"._("Use these links to have a look at game")." ".DB_format_gameid($gameid).": \n";
 
                  /* send out final email */
                  foreach($userids as $user)
@@ -1940,14 +1944,14 @@ switch($mystatus)
                      $link = "$name: ".$HOST.$INDEX."?action=game&me=".$hash."\n" ;
                      $email_message .= $link;
                    }
-                 $email_message .= "\n\n (use in-game comments to reach all players)\n\n";
+                 $email_message .= "\n\n "._("(use in-game comments to reach all players)")."\n\n";
                  mymail($userids,$gameid, GAME_OVER, $email_message);
                  set_language($myid,'uid');
              }
          }
        else
          {
-           $messages[] = "can't find that card?!";
+           $messages[] = _("can't find that card?!");
          }
       }
     else if(myisset('card') && !$myturn )
@@ -1971,7 +1975,7 @@ switch($mystatus)
                           ' LEFT JOIN Play ON Trick.id=Play.trick_id'.
                           ' LEFT JOIN Hand_Card ON Hand_Card.id=Play.hand_card_id'.
                           ' LEFT JOIN Card ON Card.id=Hand_Card.card_id'.
-                          " WHERE Hand.game_id='$gameid'".
+                          " WHERE Hand.game_id=".DB_quote_smart($gameid).
                           ' GROUP BY User.fullname' );
        while( $r = DB_fetch_array($result))
          echo '      <div class="card'.($r[3]-1)."\">\n".
@@ -1985,27 +1989,27 @@ switch($mystatus)
                           ' LEFT JOIN Play ON Trick.id=Play.trick_id'.
                           ' LEFT JOIN Hand_Card ON Hand_Card.id=Play.hand_card_id'.
                           ' LEFT JOIN Card ON Card.id=Hand_Card.card_id'.
-                          " WHERE Hand.game_id='$gameid'".
+                          " WHERE Hand.game_id=".DB_quote_smart($gameid).
                           ' GROUP BY Hand.party' );
        echo "    <div class=\"total\">\n  Totals:<br />\n";
        while( $r = DB_fetch_array($result))
          echo '      '.$r[0].' '.$r[1]."<br />\n";
 
        $queryresult = DB_query('SELECT timediff(mod_date,create_date) '.
-                               " FROM Game WHERE id='$gameid'");
+                               " FROM Game WHERE id=".DB_quote_smart($gameid));
        $r = DB_fetch_array($queryresult);
        echo '      <p>This game took '.$r[0]." hours.</p>\n";
 
        echo "      <div class=\"re\">\n   Points Re: <br />\n";
        $queryresult = DB_query('SELECT score FROM Score '.
-                               "  WHERE game_id=$gameid AND party='re'");
+                               "  WHERE game_id=".DB_quote_smart($gameid)." AND party='re'");
        while($r = DB_fetch_array($queryresult) )
          echo '       '.$r[0]."<br />\n";
        echo "      </div>\n";
 
        echo "      <div class=\"contra\">\n   Points Contra: <br />\n";
        $queryresult = DB_query('SELECT score FROM Score '.
-                               "  WHERE game_id=$gameid AND party='contra'");
+                               "  WHERE game_id=".DB_quote_smart($gameid)." AND party='contra'");
        while($r = DB_fetch_array($queryresult) )
          echo '       '.$r[0]."<br />\n";
        echo "      </div>\n";
@@ -2261,7 +2265,7 @@ if( sizeof($messages) )
     echo "\n<div class=\"message\">\n";
     foreach($messages as $message)
       {
-       echo "  <div>$message <div>close</div> </div>\n";
+       echo "  <div>$message <div>"._("close")."</div> </div>\n";
       }
     echo "</div>\n\n";
   }
@@ -2289,7 +2293,7 @@ if($commentCall != '')
 echo "<div class=\"gameinfo\">\n";
 
 /* get time from the last action of the game */
-$r = DB_query_array("SELECT mod_date from Game WHERE id='$gameid' " );
+$r = DB_query_array("SELECT mod_date from Game WHERE id=".DB_quote_smart($gameid));
 $gameend = time() - strtotime($r[0]);
 
 /* comment box */