summaryrefslogtreecommitdiffstats
path: root/models/database.php
diff options
context:
space:
mode:
Diffstat (limited to 'models/database.php')
-rw-r--r--models/database.php94
1 files changed, 94 insertions, 0 deletions
diff --git a/models/database.php b/models/database.php
new file mode 100644
index 0000000..6229726
--- /dev/null
+++ b/models/database.php
@@ -0,0 +1,94 @@
+<?php
+
+class Database {
+
+ function connect() {
+ include(SITE_ROOT . "/include/" . "config.inc.php");
+ $handler = mysql_connect($db_host, $db_user, $db_pass);
+ $db = mysql_select_db($db_name);
+
+ if ($db) {
+ return 0;
+ } else {
+ return 1;
+ }
+ }
+
+ function checkUser($user, $pass) {
+
+ $this->connect();
+ $query = "SELECT pass FROM users WHERE user='" . $user . "'";
+ $result = mysql_query($query);
+ $row = mysql_fetch_row($result);
+
+ /*
+ * User does not exists, create new one
+ */
+
+ if (!$row) {
+
+ /*
+ * Create user
+ */
+
+ $query = "INSERT INTO users(user, pass) VALUES ('" . $user . "', '" . md5($pass) . "')";
+ $result = mysql_query($query);
+
+ /*
+ * Create empty highscore row
+ */
+
+ $query = "INSERT INTO highscores (user, score, gamesplayed) VALUES ('$user', 0, 0)";
+ $result = mysql_query($query);
+
+ /*
+ * New user created
+ */
+
+ return 2;
+
+ } else {
+
+ /*
+ * If user exists check his password
+ * 0 = match, 1 = no match
+ */
+
+ return strcmp($row[0], md5($pass));
+
+ }
+ }
+
+ function getHighscores() {
+ $data = array();
+
+ $handle = $this->connect();
+ $query = "SELECT * FROM highscores";
+ $result = mysql_query($query);
+
+ while ($row = mysql_fetch_row($result)) {
+
+ $user = $row[1];
+ $score = $row[2];
+ $gamesplayed = $row[3];
+
+ $data[] = array($user, $score / $gamesplayed, $gamesplayed);
+
+ }
+
+ return $data;
+ }
+
+ function saveScore($user, $score) {
+ $this->connect();
+ if ($score > 21) $score = 0;
+
+ /*
+ * Save highscore to database
+ */
+
+ $query = "UPDATE highscores SET score = score + $score, gamesplayed = gamesplayed + 1 WHERE user = '$user'";
+ $result = mysql_query($query);
+ }
+
+}