X-Git-Url: https://dev.renevier.net/gitweb.cgi?p=syp.git;a=blobdiff_plain;f=inc%2Fdb%2Fmysql.php;h=043e86d7818b853cd84951f4ae1ec9352e8cd5cf;hp=8e3fcf85394d618b97c7d1bbd4e68e8ee7abf859;hb=3b38ca36fc18d34999073625a9c66dc2f05747a3;hpb=3181694edcb311144c22078ab6d59112bcde612a diff --git a/inc/db/mysql.php b/inc/db/mysql.php index 8e3fcf8..043e86d 100644 --- a/inc/db/mysql.php +++ b/inc/db/mysql.php @@ -107,20 +107,22 @@ class mysqlConnection implements anydbConnection { $query = sprintf ("INSERT INTO %sitems (imgpath, title, description, location, date, user) VALUES ('%s', '%s', '%s', - GeomFromText('POINT(%s %s)'), NOW(), 'admin')", + GeomFromText('POINT(%s %s)'), NOW(), '%s')", $this->dbprefix, mysql_real_escape_string ($feature->imgpath), mysql_real_escape_string ($feature->title), mysql_real_escape_string ($feature->description), $feature->lon, - $feature->lat + $feature->lat, + mysql_real_escape_string ($feature->user) ); $this->_execute_query ($query); $id = mysql_insert_id (); return new feature ($id, $feature->lon, $feature->lat, $feature->imgpath, $feature->title, - $feature->description, $feature->date); + $feature->description, $feature->date, + $feature->user); } } @@ -134,8 +136,8 @@ class mysqlConnection implements anydbConnection { public function getfeature ($id) { $query = sprintf ("SELECT id, imgpath, title, description, AsText(location) - AS location, UNIX_TIMESTAMP(date) AS date FROM %sitems - WHERE id = '%s';", + AS location, UNIX_TIMESTAMP(date) AS date, user + FROM %sitems WHERE id = '%s';", $this->dbprefix, mysql_real_escape_string ($id)); $row = mysql_fetch_assoc ($this->_execute_query ($query)); if ($row === false) { @@ -144,10 +146,18 @@ class mysqlConnection implements anydbConnection { return $this->_feature_frow_row ($row); } - public function listfeatures () { + public function listfeatures ($user) { + if ($user && ($user != "admin")) { + $from_user_query = sprintf (" WHERE user = '%s' ", + mysql_real_escape_string ($user)); + } else { + $from_user_query = ""; + } + $query = sprintf ("SELECT id, imgpath, title, description, AsText(location) - AS location, UNIX_TIMESTAMP(date) AS date FROM %sitems;", - $this->dbprefix); + AS location, UNIX_TIMESTAMP(date) AS date, user + FROM %sitems %s;", + $this->dbprefix, $from_user_query); $features = array (); $res = $this->_execute_query ($query); @@ -163,7 +173,7 @@ class mysqlConnection implements anydbConnection { public function mostrecentfeatures ($num_features) { $query = sprintf ("SELECT id, imgpath, title, description, AsText(location) AS location, UNIX_TIMESTAMP(date) - AS date FROM %sitems ORDER BY date DESC", + AS date, user FROM %sitems ORDER BY date DESC", $this->dbprefix); if ($num_features) { $query .= sprintf (" LIMIT %d", $num_features); @@ -186,46 +196,6 @@ class mysqlConnection implements anydbConnection { return ($res [0] >= 1) ? true : false; } - public function mbr () { - $maxlon = -180; - $minlon = 180; - $maxlat = -88; - $minlat = 88; - - if (!$this->link) { - return array ($minlon, $minlat, $maxlon, $maxlat); - } - try { - $features = $this->listfeatures (); - } catch (Exception $e) { - return array ($minlon, $minlat, $maxlon, $maxlat); - } - - if (count ($features) == 0) { - return array ($minlon, $minlat, $maxlon, $maxlat); - } else if (count ($features) == 1) { - // in case there's only one feature, we show an area of at least - // 4 x 4 degrees - $feature = $features [0]; - - $minlon = max ($feature->lon - 2, -180); - $maxlon = min ($feature->lon + 2, 180); - $minlat = max ($feature->lat - 2, -90); - $maxlat = min ($feature->lat + 2, 90); - - return array ($minlon, $minlat, $maxlon, $maxlat); - } else { - foreach ($features as $feature) { - $minlon = min ($feature->lon, $minlon); - $minlat = min ($feature->lat, $minlat); - $maxlon = max ($feature->lon, $maxlon); - $maxlat = max ($feature->lat, $maxlat); - } - - return array ($minlon, $minlat, $maxlon, $maxlat); - } - } - public function getdbname () { return "Mysql"; } @@ -247,7 +217,7 @@ class mysqlConnection implements anydbConnection { try { $feature = new feature ($row ["id"], $lon, $lat, $row ["imgpath"], $row ["title"], $row ["description"], - $row ["date"]); + $row ["date"], $row ["user"]); } catch (Exception $e) { return null; }