NEW FEATURE: use php session
[e-DoKo.git] / db.php
1 <?php
2
3 /*
4  * open database 
5  */
6
7 function DB_open()
8 {
9   global $DB,$DB_user,$DB_host,$DB_database,$DB_password;
10   $DB = @mysql_connect($DB_host,$DB_user, $DB_password);
11   if ( $DB )
12     {
13       mysql_select_db($DB_database) or die('Could not select database'); 
14     }
15   else
16     return -1;
17   
18   return 0;
19 }
20
21 function DB_close()
22 {
23   global $DB;
24   mysql_close($DB);
25   return;
26 }
27
28 function DB_quote_smart($value)
29 {
30     /* Stripslashes */
31     if (get_magic_quotes_gpc()) {
32         $value = stripslashes($value);
33     }
34     /* Quote if not a number or a numeric string */
35     if (!is_numeric($value)) {
36         $value = "'" . mysql_real_escape_string($value) . "'";
37     }
38     return $value;
39 }
40
41
42 function DB_test()
43 {
44   $result = mysql_query("SELECT * FROM User");
45   while($r = mysql_fetch_array($result,MYSQL_NUM))
46     {
47       foreach($r as $thing)
48         echo "  $thing ";
49       echo "<br />\n";
50     }
51   return;
52 }
53
54 function DB_get_email_by_name($name)
55 {
56   $result = mysql_query("SELECT email FROM User WHERE fullname=".DB_quote_smart($name)."");
57   $r      = mysql_fetch_array($result,MYSQL_NUM);
58   
59   if($r)
60     return $r[0];
61   else
62     return "";
63 }
64 function DB_get_passwd_by_name($name)
65 {
66   $result = mysql_query("SELECT password FROM User WHERE fullname=".DB_quote_smart($name)."");
67   $r      = mysql_fetch_array($result,MYSQL_NUM);
68
69   if($r)
70     return $r[0];
71   else
72     return "";
73 }
74
75 function DB_get_email_by_userid($id)
76 {
77   $result = mysql_query("SELECT email FROM User WHERE id=".DB_quote_smart($id)."");
78   $r      = mysql_fetch_array($result,MYSQL_NUM);
79   
80   if($r)
81     return $r[0];
82   else
83     return "";
84 }
85
86 function DB_get_email_by_pos_and_gameid($pos,$gameid)
87 {
88   $result = mysql_query("SELECT email FROM User ".
89                         "LEFT JOIN Hand ON User.id=Hand.user_id ".
90                         "LEFT JOIN Game ON Game.id=Hand.game_id ". 
91                         "WHERE Game.id=".DB_quote_smart($gameid)." ".
92                         "AND Hand.position=".DB_quote_smart($pos)."");
93   $r      = mysql_fetch_array($result,MYSQL_NUM);
94   
95   if($r)
96     return $r[0];
97   else
98     return "";
99 }
100
101 function DB_get_email_by_hash($hash)
102 {
103   $result = mysql_query("SELECT User.email FROM User LEFT JOIN Hand ON Hand.user_id=User.id WHERE Hand.hash=".DB_quote_smart($hash)."");
104   $r      = mysql_fetch_array($result,MYSQL_NUM);
105   
106   if($r)
107     return $r[0];
108   else
109     return "";
110 }
111
112 function DB_get_userid_by_name($name)
113 {
114   $result = mysql_query("SELECT id FROM User WHERE fullname=".DB_quote_smart($name));
115   $r      = mysql_fetch_array($result,MYSQL_NUM);
116   
117   if($r)
118     return $r[0];
119   else
120     return 0;
121 }
122 function DB_get_userid_by_passwd($passwd)
123 {
124   $result = mysql_query("SELECT id FROM User WHERE password=".DB_quote_smart($passwd));
125   $r      = mysql_fetch_array($result,MYSQL_NUM);
126   
127   if($r)
128     return $r[0];
129   else
130     return 0;
131 }
132 function DB_get_userid_by_email($email)
133 {
134   $result = mysql_query("SELECT id FROM User WHERE email=".DB_quote_smart($email));
135   $r      = mysql_fetch_array($result,MYSQL_NUM);
136   
137   if($r)
138     return $r[0];
139   else
140     return 0;
141 }
142 function DB_get_userid_by_email_and_password($email,$password)
143 {
144   $result = mysql_query("SELECT id FROM User WHERE email=".DB_quote_smart($email)." AND password=".DB_quote_smart($password));
145   $r      = mysql_fetch_array($result,MYSQL_NUM);
146   
147   /* test if a recovery password has been set */
148   if(!$r)
149     {
150       $result = mysql_query("SELECT User.id FROM User".
151                             " LEFT JOIN Recovery ON User.id=Recovery.user_id".
152                             " WHERE email=".DB_quote_smart($email).
153                             " AND Recovery.password=".DB_quote_smart($password).
154                             " AND DATE_SUB(CURDATE(),INTERVAL 1 DAY) <= Recovery.create_date");
155       $r      = mysql_fetch_array($result,MYSQL_NUM);
156     }
157
158   if($r)
159     return $r[0];
160   else
161     return 0;
162 }
163
164 function DB_get_handid_by_hash($hash)
165 {
166   $result = mysql_query("SELECT id FROM Hand WHERE hash=".DB_quote_smart($hash));
167   $r      = mysql_fetch_array($result,MYSQL_NUM);
168   
169   if($r)
170     return $r[0];
171   else
172     return 0;
173 }
174
175 function DB_get_handid_by_gameid_and_position($gameid,$pos)
176 {
177   $result = mysql_query("SELECT id FROM Hand WHERE game_id=".
178                         DB_quote_smart($gameid)." AND position=".
179                         DB_quote_smart($pos));
180   $r      = mysql_fetch_array($result,MYSQL_NUM);
181   
182   if($r)
183     return $r[0];
184   else
185     return -1;
186 }
187 function DB_get_userid_by_gameid_and_position($gameid,$pos)
188 {
189   $result = mysql_query("SELECT user_id FROM Hand WHERE game_id=".
190                         DB_quote_smart($gameid)." AND position=".
191                         DB_quote_smart($pos));
192   $r      = mysql_fetch_array($result,MYSQL_NUM);
193   
194   if($r)
195     return $r[0];
196   else
197     return -1;
198 }
199
200
201 function DB_get_handid_by_gameid_and_userid($gameid,$userid)
202 {
203   $result = mysql_query("SELECT id FROM Hand WHERE game_id=".
204                         DB_quote_smart($gameid)." AND user_id=".
205                         DB_quote_smart($userid));
206   $r      = mysql_fetch_array($result,MYSQL_NUM);
207   
208   if($r)
209     return $r[0];
210   else
211     return -1;
212 }
213
214 function DB_get_userid_by_hash($hash)
215 {
216   $result = mysql_query("SELECT user_id FROM Hand WHERE hash=".DB_quote_smart($hash));
217   $r      = mysql_fetch_array($result,MYSQL_NUM);
218   
219   if($r)
220     return $r[0];
221   else
222     return 0;
223 }
224
225 function DB_get_pos_by_hash($hash)
226 {
227   $result = mysql_query("SELECT position FROM Hand WHERE hash=".DB_quote_smart($hash));
228   $r      = mysql_fetch_array($result,MYSQL_NUM);
229   
230   if($r)
231     return $r[0];
232   else
233     return 0;
234 }
235
236 function DB_get_name_by_hash($hash)
237 {
238   $result = mysql_query("SELECT fullname FROM Hand LEFT JOIN User ON Hand.user_id=User.id WHERE hash=".DB_quote_smart($hash));
239   $r      = mysql_fetch_array($result,MYSQL_NUM);
240   
241   if($r)
242     return $r[0];
243   else
244     return "";
245 }
246
247 function DB_get_name_by_email($email)
248 {
249   $result = mysql_query("SELECT fullname FROM User WHERE email=".DB_quote_smart($email));
250   $r      = mysql_fetch_array($result,MYSQL_NUM);
251   
252   if($r)
253     return $r[0];
254   else
255     return "";
256 }
257
258 function DB_get_name_by_userid($id)
259 {
260   $result = mysql_query("SELECT fullname FROM User  WHERE id=".DB_quote_smart($id));
261   $r      = mysql_fetch_array($result,MYSQL_NUM);
262   
263   if($r)
264     return $r[0];
265   else
266     return "";
267 }
268
269 function DB_get_status_by_hash($hash)
270 {
271   $result = mysql_query("SELECT status FROM Hand WHERE hash=".DB_quote_smart($hash));
272   $r      = mysql_fetch_array($result,MYSQL_NUM);
273   
274   if($r)
275     return $r[0];
276   else
277     return 0;
278 }
279
280 function DB_set_game_status_by_gameid($id,$status)
281 {
282   mysql_query("UPDATE Game SET status='".$status."' WHERE id=".DB_quote_smart($id));
283   return;
284 }
285
286 function DB_set_sickness_by_gameid($id,$status)
287 {
288   mysql_query("UPDATE Game SET sickness='".$status."' WHERE id=".DB_quote_smart($id));
289   return;
290 }
291 function DB_get_sickness_by_gameid($id)
292 {
293   $result = mysql_query("SELECT sickness FROM Game WHERE id=".DB_quote_smart($id));
294   $r      = mysql_fetch_array($result,MYSQL_NUM);
295   
296   if($r)
297     return $r[0];
298   else
299     return NULL;
300 }
301
302 function DB_get_game_status_by_gameid($id)
303 {
304   $result = mysql_query("SELECT status FROM Game WHERE id=".DB_quote_smart($id));
305   $r      = mysql_fetch_array($result,MYSQL_NUM);
306   
307   if($r)
308     return $r[0];
309   else
310     return NULL;
311 }
312
313 function DB_set_hand_status_by_hash($hash,$status)
314 {
315   mysql_query("UPDATE Hand SET status='".$status."' WHERE hash=".DB_quote_smart($hash));
316   return;
317 }
318
319 function DB_get_hand_status_by_userid_and_gameid($uid,$gid)
320 {
321   $result = mysql_query("SELECT status FROM Hand WHERE user_id=".DB_quote_smart($uid).
322                         " AND game_id=".DB_quote_smart($gid));
323   $r      = mysql_fetch_array($result,MYSQL_NUM);
324   
325   if($r)
326     return $r[0];
327   else
328     return 0;
329 }
330
331 function DB_get_sickness_by_userid_and_gameid($uid,$gid)
332 {
333   $result = mysql_query("SELECT sickness FROM Hand WHERE user_id=".DB_quote_smart($uid).
334                         " AND game_id=".DB_quote_smart($gid));
335   $r      = mysql_fetch_array($result,MYSQL_NUM);
336   
337   if($r)
338     return $r[0];
339   else
340     return 0;
341 }
342
343 function DB_get_sickness_by_pos_and_gameid($pos,$gid)
344 {
345   $result = mysql_query("SELECT sickness FROM Hand WHERE position=".DB_quote_smart($pos).
346                         " AND game_id=".DB_quote_smart($gid));
347   $r      = mysql_fetch_array($result,MYSQL_NUM);
348   
349   if($r)
350     return $r[0];
351   else
352     return 0;
353 }
354
355 function DB_get_gameid_by_hash($hash)
356 {
357   $result = mysql_query("SELECT game_id FROM Hand WHERE hash=".DB_quote_smart($hash));
358   $r      = mysql_fetch_array($result,MYSQL_NUM);
359   
360   if($r)
361     return $r[0];
362   else
363     return 0;
364 }
365
366 function DB_cancel_game($hash)
367 {
368   $gameid = DB_get_gameid_by_hash($hash);
369
370   if(!$gameid)
371     return;
372
373   /* get the IDs of all players */
374   $result = mysql_query("SELECT id FROM Hand WHERE game_id=".DB_quote_smart($gameid));
375   while($r = mysql_fetch_array($result,MYSQL_NUM))
376     {
377       $id = $r[0];
378       
379       $tmp = mysql_query("SELECT id  FROM Hand_Card WHERE hand_id=".DB_quote_smart($id));
380       $tmp = mysql_fetch_array($tmp,MYSQL_NUM);
381       mysql_query("DELETE FROM Play WHERE hand_card_id=".DB_quote_smart($tmp[0]));
382
383       
384       mysql_query("DELETE FROM Hand_Card WHERE hand_id=".DB_quote_smart($id));
385       mysql_query("DELETE FROM Score WHERE hand_id=".DB_quote_smart($id));
386       mysql_query("DELETE FROM Hand WHERE id=".DB_quote_smart($id));
387     }
388   
389   /* delete game */
390   mysql_query("DELETE FROM User_Game_Prefs WHERE game_id=".DB_quote_smart($gameid));
391   mysql_query("DELETE FROM Trick WHERE game_id=".DB_quote_smart($gameid));
392   mysql_query("DELETE FROM Game WHERE id=".DB_quote_smart($gameid));
393   
394   return;
395 }
396
397 function DB_get_hand($me)
398 {
399   $cards = array();
400
401   $handid = DB_get_handid_by_hash($me);
402
403   $result = mysql_query("SELECT card_id FROM Hand_Card WHERE hand_id=".DB_quote_smart($handid)." and played='false' ");
404   while($r = mysql_fetch_array($result,MYSQL_NUM))
405     $cards[]=$r[0];
406
407   return $cards;
408 }
409
410 function DB_get_all_hand($me)
411 {
412   $cards = array();
413
414   $handid = DB_get_handid_by_hash($me);
415
416   $result = mysql_query("SELECT card_id FROM Hand_Card WHERE hand_id=".DB_quote_smart($handid));
417   while($r = mysql_fetch_array($result,MYSQL_NUM))
418     $cards[]=$r[0];
419
420   return $cards;
421 }
422
423 function DB_get_cards_by_trick($id)
424 {
425   $cards = array();
426   $i     = 1;
427   
428   $result = mysql_query("SELECT card_id,position FROM Play LEFT JOIN Hand_Card ON Hand_Card.id=Play.hand_card_id ".
429                         "LEFT JOIN Hand ON Hand.id=Hand_Card.hand_id ".
430                         "WHERE trick_id=".
431                         DB_quote_smart($id)." ORDER BY sequence ASC");
432   while($r = mysql_fetch_array($result,MYSQL_NUM))
433     {
434       $cards[$i]=array("card"=>$r[0],"pos"=>$r[1]);
435       $i++;
436     }
437
438   return $cards;
439 }
440
441
442 function DB_set_solo_by_hash($hash,$solo)
443 {
444   mysql_query("UPDATE Hand SET solo=".DB_quote_smart($solo)." WHERE hash=".DB_quote_smart($hash));
445   return;
446 }
447
448 function DB_set_solo_by_gameid($id,$solo)
449 {
450   mysql_query("UPDATE Game SET solo=".DB_quote_smart($solo)." WHERE id=".DB_quote_smart($id));
451   return;
452 }
453
454 function DB_set_sickness_by_hash($hash,$sickness)
455 {
456   mysql_query("UPDATE Hand SET sickness=".DB_quote_smart($sickness)." WHERE hash=".DB_quote_smart($hash));
457   return;
458 }
459
460 function DB_get_current_trickid($gameid)
461 {
462   $trickid  = NULL;
463   $sequence = NULL;
464   $number   = 0;
465
466   $result = mysql_query("SELECT Trick.id,MAX(Play.sequence) FROM Play ".
467                         "LEFT JOIN Trick ON Play.trick_id=Trick.id ".
468                         "WHERE Trick.game_id=".DB_quote_smart($gameid)." ".
469                         "GROUP BY Trick.id");
470   while( $r = mysql_fetch_array($result,MYSQL_NUM) )
471     {
472       $trickid  = $r[0];
473       $sequence = $r[1];
474       $number++;
475     };
476   
477   if(!$sequence || $sequence==4)
478     {
479       mysql_query("INSERT INTO Trick VALUES (NULL,NULL,NULL, ".DB_quote_smart($gameid).",NULL)");
480       $trickid  = mysql_insert_id();
481       $sequence = 1;
482       $number++;
483     }
484   else
485     {
486       $sequence++;
487     }
488
489   return array($trickid,$sequence,$number);
490 }
491
492 function DB_get_max_trickid($gameid)
493 {
494   $result = mysql_query("SELECT MAX(id) FROM Trick WHERE game_id=".DB_quote_smart($gameid));
495   $r = mysql_fetch_array($result,MYSQL_NUM) ;
496   
497   return ($r?$r[0]:NULL);
498 }
499
500 function DB_play_card($trickid,$handcardid,$sequence)
501 {
502   mysql_query("INSERT INTO Play VALUES(NULL,NULL,NULL,".DB_quote_smart($trickid).
503               ",".DB_quote_smart($handcardid).",".DB_quote_smart($sequence).")");
504       
505   $playid = mysql_insert_id();
506   return $playid;
507 }
508
509 function DB_get_all_names_by_gameid($id)
510 {
511   $names = array();
512   
513   $result = mysql_query("SELECT fullname FROM Hand LEFT JOIN User ON Hand.user_id=User.id WHERE game_id=".
514                         DB_quote_smart($id)." ORDER BY position ASC");
515   while($r = mysql_fetch_array($result,MYSQL_NUM))
516     $names[] = $r[0];
517
518   return $names;
519 }
520
521 function DB_get_all_userid_by_gameid($id)
522 {
523   $names = array();
524   
525   $result = mysql_query("SELECT user_id FROM Hand WHERE game_id=".
526                         DB_quote_smart($id)." ORDER BY position ");
527   while($r = mysql_fetch_array($result,MYSQL_NUM))
528     $names[] = $r[0];
529
530   return $names;
531 }
532
533 function DB_get_hash_from_game_and_pos($id,$pos)
534 {
535   $result = mysql_query("SELECT hash FROM Hand WHERE game_id=".DB_quote_smart($id)." and position=".DB_quote_smart($pos));
536   $r      = mysql_fetch_array($result,MYSQL_NUM);
537   
538   if($r)
539     return $r[0];
540   else
541     return "";
542 }
543
544 function DB_get_hash_from_gameid_and_userid($id,$user)
545 {
546   $result = mysql_query("SELECT hash FROM Hand WHERE game_id=".DB_quote_smart($id)." and user_id=".DB_quote_smart($user));
547   $r      = mysql_fetch_array($result,MYSQL_NUM);
548   
549   if($r)
550     return $r[0];
551   else
552     return "";
553 }
554
555 function DB_get_all_names()
556 {
557   $names  = array();
558
559   $result = mysql_query("SELECT fullname FROM User");
560   while($r = mysql_fetch_array($result,MYSQL_NUM))
561     $names[] = $r[0];
562
563   return $names;
564 }
565
566 function DB_update_game_timestamp($gameid)
567 {
568   mysql_query("UPDATE Game SET mod_date = CURRENT_TIMESTAMP WHERE id=".DB_quote_smart($gameid));
569   return;
570 }
571
572
573 function DB_update_user_timestamp($userid)
574 {
575   mysql_query("UPDATE User SET last_login = CURRENT_TIMESTAMP WHERE id=".DB_quote_smart($userid));
576   return;
577 }
578
579 function DB_get_user_timestamp($userid)
580 {
581   $result = mysql_query("SELECT last_login FROM User WHERE id=".DB_quote_smart($userid));
582   $r      = mysql_fetch_array($result,MYSQL_NUM);
583   
584   if($r)
585     return $r[0];
586   else
587     return NULL;
588 }
589 function DB_get_user_timezone($userid)
590 {
591   $result = mysql_query("SELECT timezone FROM User WHERE id=".DB_quote_smart($userid));
592   $r      = mysql_fetch_array($result,MYSQL_NUM);
593   
594   if($r)
595     return $r[0];
596   else
597     return 0;
598 }
599
600 function DB_insert_comment($comment,$playid,$userid)
601 {
602   mysql_query("INSERT INTO Comment VALUES (NULL,NULL,NULL,$userid,$playid, ".DB_quote_smart($comment).")");
603
604   return;
605 }
606
607 function DB_get_gametype_by_gameid($id)
608 {
609   $result = mysql_query("SELECT type FROM Game WHERE id=".DB_quote_smart($id));
610   $r      = mysql_fetch_array($result,MYSQL_NUM);
611   
612   if($r)
613     return $r[0]."";
614   else
615     return "";
616 }
617
618 function DB_set_gametype_by_gameid($id,$p)
619 {
620   mysql_query("UPDATE Game SET type='".$p."' WHERE id=".DB_quote_smart($id));
621   return;
622 }
623
624 function DB_get_solo_by_gameid($id)
625 {
626   $result = mysql_query("SELECT solo FROM Game WHERE id=".DB_quote_smart($id));
627   $r      = mysql_fetch_array($result,MYSQL_NUM);
628   
629   if($r)
630     return $r[0]."";
631   else
632     return "";
633 }
634
635
636 function DB_get_startplayer_by_gameid($id)
637 {
638   $result = mysql_query("SELECT startplayer FROM Game WHERE id=".DB_quote_smart($id));
639   $r      = mysql_fetch_array($result,MYSQL_NUM);
640   
641   if($r)
642     return $r[0];
643   else
644     return 0;
645 }
646
647 function DB_set_startplayer_by_gameid($id,$p)
648 {
649   mysql_query("UPDATE Game SET startplayer='".$p."' WHERE id=".DB_quote_smart($id));
650   return;
651 }
652
653 function DB_get_player_by_gameid($id)
654 {
655   $result = mysql_query("SELECT player FROM Game WHERE id=".DB_quote_smart($id));
656   $r      = mysql_fetch_array($result,MYSQL_NUM);
657   
658   if($r)
659     return $r[0];
660   else
661     return 0;
662 }
663 function DB_set_player_by_gameid($id,$p)
664 {
665   mysql_query("UPDATE Game SET player='".DB_quote_smart($p)."' WHERE id=".DB_quote_smart($id));
666   return;
667 }
668
669
670
671 function DB_get_ruleset_by_gameid($id)
672 {
673   $result = mysql_query("SELECT ruleset FROM Game WHERE id=".DB_quote_smart($id));
674   $r      = mysql_fetch_array($result,MYSQL_NUM);
675   
676   if($r)
677     return $r[0];
678   else
679     return NULL;
680 }
681
682 function DB_get_session_by_gameid($id)
683 {
684   $result = mysql_query("SELECT session FROM Game WHERE id=".DB_quote_smart($id));
685   $r      = mysql_fetch_array($result,MYSQL_NUM);
686   
687   if($r)
688     return $r[0];
689   else
690     return NULL;
691 }
692
693 function DB_get_max_session()
694 {
695   $result = mysql_query("SELECT MAX(session) FROM Game");
696   $r      = mysql_fetch_array($result,MYSQL_NUM);
697   
698   if($r)
699     return $r[0];
700   else
701     return 0;
702 }
703
704 function DB_get_hashes_by_session($session,$user)
705 {
706   $r = array();
707
708   $result = mysql_query("SELECT Hand.hash FROM Hand".
709                         " LEFT JOIN Game ON Game.id=Hand.game_id ".
710                         " WHERE Game.session=".DB_quote_smart($session).
711                         " AND Hand.user_id=".DB_quote_smart($user));
712   while($t = mysql_fetch_array($result,MYSQL_NUM))
713     $r[] = $t[0];
714
715   return $r;
716 }
717
718 function DB_get_ruleset($dullen,$schweinchen,$call)
719 {
720   $r = array();
721   
722   $result = mysql_query("SELECT id FROM Rulesets WHERE".
723                         " dullen=".DB_quote_smart($dullen)." AND ".
724                         " call=".DB_quote_smart($call)." AND ".
725                         " schweinchen=".DB_quote_smart($schweinchen));
726   if($result)
727     $r    = mysql_fetch_array($result,MYSQL_NUM);
728   
729   if($r)
730     return $r[0]; /* found ruleset */
731   else
732     {
733       /* create new one */
734       $result = mysql_query("INSERT INTO Rulesets VALUES (NULL, NULL, ".
735                             DB_quote_smart($dullen).",".
736                             DB_quote_smart($schweinchen).",".
737                             DB_quote_smart($call).
738                             ", NULL)");
739       if($result)
740         return mysql_insert_id();
741     };
742
743   return -1; /* something went wrong */
744 }
745
746 function DB_get_party_by_hash($hash)
747 {
748   $result = mysql_query("SELECT party FROM Hand WHERE hash=".DB_quote_smart($hash));
749   $r      = mysql_fetch_array($result,MYSQL_NUM);
750   
751   if($r)
752     return $r[0];
753   else
754     return NULL;
755 }
756 function DB_set_party_by_hash($hash,$party)
757 {
758   mysql_query("UPDATE Hand SET party=".DB_quote_smart($party)." WHERE hash=".DB_quote_smart($hash));
759   return;
760 }
761
762 function DB_get_PREF($myid)
763 {
764   global $PREF;
765
766     $result = mysql_query("SELECT value from User_Prefs".
767                           " WHERE user_id='$myid' AND pref_key='cardset'" );
768     $r = mysql_fetch_array($result,MYSQL_NUM);
769     if($r)
770       {
771         if($r[0]=="germancards" && (time()-strtotime( "2009-12-31 23:59:59")<0) ) /* licence only valid until then */
772           $PREF["cardset"]="altenburg";
773         else
774           $PREF["cardset"]="english";
775       }
776     else
777       $PREF["cardset"]="english";
778
779     return;
780 }
781
782 function DB_get_unused_randomnumbers($userstr)
783 {
784   $queryresult = mysql_query("SELECT randomnumbers,Game.id, COUNT(*) as num FROM Game ".
785                              "  LEFT JOIN Hand ON Hand.game_id=Game.id ".
786                              "                 AND user_id not in (".$userstr.")".
787                              "  GROUP BY  Game.id ".
788                              "  HAVING num=4");
789   
790   $r = mysql_fetch_array($queryresult,MYSQL_NUM);
791   if($r)
792     return $r[0];
793   else
794     return "";
795 }
796
797 function DB_get_number_of_passwords_recovery($user)
798 {
799   $queryresult = mysql_query("SELECT COUNT(*) FROM Recovery ".
800                              "  WHERE user_id=$user ".
801                              "  AND DATE_SUB(CURDATE(),INTERVAL 1 DAY) <= create_date".
802                              "  GROUP BY user_id " );
803   
804   $r = mysql_fetch_array($queryresult,MYSQL_NUM);
805   if($r)
806     return $r[0];
807   else
808     return 0;
809 }
810
811 function DB_set_recovery_password($user,$newpw)
812 {
813   mysql_query("INSERT INTO Recovery VALUES(NULL,".DB_quote_smart($user).
814               ",".DB_quote_smart($newpw).",NULL)");
815               
816   return;
817 }
818
819 function DB_get_card_name($card)
820 {
821   $queryresult = mysql_query("SELECT strength,suite FROM Card WHERE id='$card'");
822   
823   $r = mysql_fetch_array($queryresult,MYSQL_NUM);
824   if($r)
825     return $r[0]." of ".$r[1];
826   else
827     return "Error during get_card_name ".$card;
828 }
829
830 function DB_get_current_playid($gameid)
831 {
832   $trick = DB_get_max_trickid($gameid);
833   
834   if(!$trick) return NULL;
835   
836   $queryresult = mysql_query("SELECT id FROM Play WHERE trick_id='$trick' ORDER BY create_date DESC LIMIT 1");
837   
838   $r = mysql_fetch_array($queryresult,MYSQL_NUM);
839   if($r)
840     return $r[0];
841   
842   return "";
843 }
844
845 ?>