]> git.mxchange.org Git - mailer.git/blobdiff - inc/mysql-manager.php
Now right revision
[mailer.git] / inc / mysql-manager.php
index 1def31192837709bc8214be54562fc4295a8229e..00f7d155e3ed547a09234f6c41f498a584328103 100644 (file)
@@ -1074,16 +1074,17 @@ function REMOVE_RECEIVER(&$ARRAY, $key, $uid, $pool_id, $stats_id="", $bonus=fal
        // Return status for sending routine
        return $ret;
 }
-//
+
+// Calculate sum (default) or count records of given criteria
 function GET_TOTAL_DATA($search, $tableName, $lookFor, $whereStatement="userid", $onlyRows=false, $add="") {
        $ret = 0;
        if ($onlyRows) {
                // Count rows
-               $result = SQL_QUERY_ESC("SELECT COUNT(%s) FROM "._MYSQL_PREFIX."_%s WHERE %s='%s'%s",
+               $result = SQL_QUERY_ESC("SELECT COUNT(`%s`) FROM `"._MYSQL_PREFIX."_%s` WHERE `%s`='%s'%s",
                 array($lookFor, $tableName, $whereStatement, $search, $add), __FILE__, __LINE__);
        } else {
                // Add all rows
-               $result = SQL_QUERY_ESC("SELECT SUM(%s) FROM "._MYSQL_PREFIX."_%s WHERE %s='%s'%s",
+               $result = SQL_QUERY_ESC("SELECT SUM(`%s`) FROM `"._MYSQL_PREFIX."_%s` WHERE `%s`='%s'%s",
                 array($lookFor, $tableName, $whereStatement, $search, $add), __FILE__, __LINE__);
        }
 
@@ -1389,7 +1390,7 @@ WHERE sid='%s' LIMIT 1",
         array($_CONFIG['online_timeout']), __FILE__, __LINE__);
 }
 // OBSULETE: Sends out mail to all administrators
-function SEND_ADMIN_EMAILS($subj, $msg) {
+function SEND_ADMIN_EMAILS ($subj, $msg) {
        // Load all admin email addresses
        $result = SQL_QUERY("SELECT email FROM "._MYSQL_PREFIX."_admins ORDER BY id ASC", __FILE__, __LINE__);
        while (list($email) = SQL_FETCHROW($result)) {
@@ -1403,7 +1404,7 @@ function SEND_ADMIN_EMAILS($subj, $msg) {
        // Really simple... ;-)
 }
 // Get ID number from administrator's login name
-function GET_ADMIN_ID($login) {
+function GET_ADMIN_ID ($login) {
        global $cacheArray, $_CONFIG;
        $ret = "-1";
        if (!empty($cacheArray['admins']['aid'][$login])) {
@@ -1427,26 +1428,26 @@ function GET_ADMIN_ID($login) {
 }
 //
 // Get password hash from administrator's login name
-function GET_ADMIN_HASH($login)
+function GET_ADMIN_HASH ($aid)
 {
        global $cacheArray, $_CONFIG;
        $ret = "-1";
-       if (!empty($cacheArray['admins']['password'][$login])) {
+       if (!empty($cacheArray['admins']['password'][$aid])) {
                // Check cache
-               $ret = $cacheArray['admins']['password'][$login];
+               $ret = $cacheArray['admins']['password'][$aid];
 
                // Update cache hits
                if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; }
        } elseif (!EXT_IS_ACTIVE("cache")) {
                // Load from database
-               $result = SQL_QUERY_ESC("SELECT password FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
-                array($login), __FILE__, __LINE__);
+               $result = SQL_QUERY_ESC("SELECT password FROM "._MYSQL_PREFIX."_admins WHERE id=%s LIMIT 1",
+                array($aid), __FILE__, __LINE__);
                if (SQL_NUMROWS($result) == 1) {
                        // Fetch data
                        list($ret) = SQL_FETCHROW($result);
 
                        // Set cache
-                       $cacheArray['admins']['password'][$login] = $ret;
+                       $cacheArray['admins']['password'][$aid] = $ret;
                }
 
                // Free result
@@ -1486,7 +1487,7 @@ function GET_ADMIN_EMAIL ($aid) {
        global $cacheArray, $_CONFIG;
 
        $ret = "***";
-       if (!empty($cacheArray['admins']['email'])) {
+       if (!empty($cacheArray['admins']['email'][$aid])) {
                // Get cache
                $ret = $cacheArray['admins']['email'][$aid];
 
@@ -1516,17 +1517,17 @@ function GET_ADMIN_DEFAULT_ACL ($aid) {
        global $cacheArray, $_CONFIG;
 
        $ret = "***";
-       if (!empty($cacheArray['admins']['def_acl'])) {
+       if (!empty($cacheArray['admins']['def_acl'][$aid])) {
                // Use cache
                $ret = $cacheArray['admins']['def_acl'][$aid];
 
                // Update cache hits
                if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; }
-       } else {
+       } elseif (!EXT_IS_ACTIVE("cache")) {
                // Load from database
                $result_aid = SQL_QUERY_ESC("SELECT default_acl FROM "._MYSQL_PREFIX."_admins WHERE id=%s LIMIT 1",
-                       array(bigintval($ret)), __FILE__, __LINE__);
-               if (SQL_NUMROWS($result) == 1) {
+                       array(bigintval($aid)), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result_aid) == 1) {
                        // Fetch data
                        list($ret) = SQL_FETCHROW($result_aid);
 
@@ -1917,7 +1918,7 @@ VALUES (%s,0,'NEW','EXTENSION','%s','%s',UNIX_TIMESTAMP())",
                        array(
                                $admin_id,
                                $subject,
-                               addslashes($msg),
+                               SQL_ESCAPE($msg),
                        ),  __FILE__, __LINE__, true, false
                );
        } // END - if
@@ -2057,7 +2058,7 @@ function ADD_BONUS_MAIL_TO_QUEUE ($subject, $text, $receiverList, $points, $seco
 VALUES ('%s','%s','%s','%s','%s','NEW', UNIX_TIMESTAMP(),'%s','%s','%s','%s','%s')",
  array(
        $subject,
-       addslashes($text),
+       $text,
        $receiverList,
        $points,
        $seconds,
@@ -2074,7 +2075,7 @@ VALUES ('%s','%s','%s','%s','%s','NEW', UNIX_TIMESTAMP(),'%s','%s','%s','%s','%s
 VALUES ('%s','%s','%s','%s','%s','NEW', UNIX_TIMESTAMP(),'%s','%s','%s','%s')",
  array(
        $subject,
-       addslashes($text),
+       $text,
        $receiverList,
        $points,
        $seconds,
@@ -2267,5 +2268,28 @@ ORDER BY ur.refid ASC",
        return $refs;
 }
 
-//
+// Recuced the amount of received emails for the receipients for given email
+function REDUCT_RECIPIENT_RECEIVED_MAILS ($column, $id, $count) {
+       // Search for mail in database
+       $result = SQL_QUERY_ESC("SELECT `userid` FROM `"._MYSQL_PREFIX."_user_links` WHERE `%s`=%s ORDER BY `userid` ASC LIMIT %s",
+               array($column, bigintval($id), $count), __FILE__, __LINE__);
+
+       // Are there entries?
+       if (SQL_NUMROWS($result) > 0) {
+               // Now load all userids for one big query!
+               $UIDs = array();
+               while (list($uid) = SQL_FETCHROW($result)) {
+                       $UIDs[$uid] = $uid;
+               } // END - while
+
+               // Now update all user accounts
+               SQL_QUERY_ESC("UPDATE `"._MYSQL_PREFIX."_user_data` SET `emails_received`=`emails_received`-1 WHERE `userid` IN (%s) LIMIT %s",
+                       array(implode(",", $UIDs), count($UIDs)), __FILE__, __LINE__);
+       } // END - if
+
+       // Free result
+       SQL_FREERESULT($result);
+}
+
+// [EOF]
 ?>