LAYOUT: 1st round of changes to get rid of overlapping areas
[e-DoKo.git] / db.php
diff --git a/db.php b/db.php
index 21a77f85e846198a16438cea097c47f3f342d5fb..646f0043a27b66c7facf5cc57d59ce9e2b896fa2 100644 (file)
--- a/db.php
+++ b/db.php
@@ -161,6 +161,22 @@ function DB_get_userid_by_email_and_password($email,$password)
     return 0;
 }
 
+function DB_check_recovery_passwords($password,$email)
+{
+  $result = mysql_query("SELECT User.id FROM User".
+                       " LEFT JOIN Recovery ON User.id=Recovery.user_id".
+                       " WHERE email=".DB_quote_smart($email).
+                       " AND Recovery.password=".DB_quote_smart($password).
+                       " AND DATE_SUB(CURDATE(),INTERVAL 1 DAY) <= Recovery.create_date");
+  $r      = mysql_fetch_array($result,MYSQL_NUM);
+
+  if($r)
+    return 1;
+  else
+    return 0;
+  
+}
+
 function DB_get_handid_by_hash($hash)
 {
   $result = mysql_query("SELECT id FROM Hand WHERE hash=".DB_quote_smart($hash));
@@ -781,11 +797,14 @@ function DB_get_PREF($myid)
 
 function DB_get_unused_randomnumbers($userstr)
 {
-  $queryresult = mysql_query("SELECT randomnumbers,Game.id, COUNT(*) as num FROM Game ".
-                            "  LEFT JOIN Hand ON Hand.game_id=Game.id ".
-                            "                 AND user_id not in (".$userstr.")".
-                            "  GROUP BY  Game.id ".
-                            "  HAVING num=4");
+  $queryresult = mysql_query(" SELECT randomnumbers FROM Game".
+                            "   WHERE randomnumbers NOT IN".
+                            "           (SELECT randomnumbers FROM Game".
+                            "                LEFT JOIN Hand ON Game.id=Hand.game_id".
+                            "                WHERE user_id IN  (". $userstr .")".
+                            "                GROUP BY randomnumbers".
+                            "           )");
+
   
   $r = mysql_fetch_array($queryresult,MYSQL_NUM);
   if($r)
@@ -842,4 +861,83 @@ function DB_get_current_playid($gameid)
   return "";
 }
 
+function DB_get_call_by_hash($hash)
+{
+  $queryresult = mysql_query("SELECT point_call FROM Hand WHERE hash='$hash'");
+  
+  $r = mysql_fetch_array($queryresult,MYSQL_NUM);
+  if($r)
+    return $r[0];
+  
+  return NULL;
+}
+
+function DB_get_partner_call_by_hash($hash)
+{
+  $partner = DB_get_partner_hash_by_hash($hash);
+  
+  if($partner)
+    {
+      $queryresult = mysql_query("SELECT point_call FROM Hand WHERE hash='$partner'");
+      
+      $r = mysql_fetch_array($queryresult,MYSQL_NUM);
+      if($r)
+       return $r[0];
+    }
+  
+  return NULL;
+}
+
+function DB_get_partner_hash_by_hash($hash)
+{
+  $gameid = DB_get_gameid_by_hash($hash);
+  $party  = DB_get_party_by_hash($hash);
+  
+  $queryresult = mysql_query("SELECT hash FROM Hand WHERE game_id='$gameid' AND party='$party' AND hash<>'$hash'");
+  
+  $r = mysql_fetch_array($queryresult,MYSQL_NUM);
+  if($r)
+    return $r[0];
+
+  return NULL;
+}
+
+function DB_format_gameid($gameid)
+{
+  $session = DB_get_session_by_gameid($gameid);
+  
+  /* get number of game */
+  $result = mysql_query("SELECT COUNT(*),create_date FROM Game".
+                       " WHERE session='$session' ".
+                       " AND TIMEDIFF(create_date, (SELECT create_date FROM Game WHERE id='$gameid'))<=0 ".
+                       " GROUP by session");
+  $r = mysql_fetch_array($result,MYSQL_NUM);
+  
+  return $session.".".$r[0];
+}
+
+function DB_get_reminder($user,$gameid)
+{
+  $queryresult = mysql_query("SELECT COUNT(*) FROM Reminder ".
+                            "  WHERE user_id=$user ".
+                            "  AND game_id=$gameid ".
+                            "  AND DATE_SUB(CURDATE(),INTERVAL 1 DAY) <= create_date".
+                            "  GROUP BY user_id " );
+  
+  $r = mysql_fetch_array($queryresult,MYSQL_NUM);
+  if($r)
+    return $r[0];
+  else
+    return 0;
+}
+
+function DB_set_reminder($user,$gameid)
+{
+  mysql_query("INSERT INTO Reminder ".
+             "  VALUES(NULL, ".DB_quote_smart($user).", ".DB_quote_smart($gameid).
+              ", NULL) ");
+  return 0;
+}
+
+
 ?>
\ No newline at end of file