]> git.mxchange.org Git - mailer.git/blobdiff - inc/mysql-manager.php
Fix for broken SQL queries
[mailer.git] / inc / mysql-manager.php
index d9c2eddf94bcd44d676c7e97dc2da48ed68ae9e9..d8cbc5e2d12965693dac7f29df45025aa7894a5d 100644 (file)
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Alle MySQL-Relevanten Funktionen                 *
  * -------------------------------------------------------------------- *
- * $Revision:: 856                                                    $ *
- * $Date:: 2009-03-06 20:24:32 +0100 (Fr, 06. Mär 2009)              $ *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
  * $Tag:: 0.2.1-FINAL                                                 $ *
- * $Author:: stelzi                                                   $ *
+ * $Author::                                                          $ *
  * Needs to be in all Files and every File needs "svn propset           *
  * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
@@ -692,21 +692,21 @@ function VALIDATE_MENU_ACTION ($MODE, $act, $wht, $UPDATE=false) {
        $ret = false;
 
        // Look in all menus or only unlocked
-       $ADD = "";
-       if ((!IS_ADMIN()) && ($MODE != "admin")) $ADD = " AND `locked`='N'";
+       $add = "";
+       if ((!IS_ADMIN()) && ($MODE != "admin")) $add = " AND `locked`='N'";
 
        //* DEBUG: */ echo __LINE__.":".$MODE."/".$act."/".$wht."*<br />\n";
        if (($MODE != "admin") && ($UPDATE === true)) {
                // Update guest or member menu
-               $sql = SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_%s_menu` SET counter=counter+1 WHERE `action`='%s' AND `what`='%s'".$ADD." LIMIT 1",
+               $sql = SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_%s_menu` SET counter=counter+1 WHERE `action`='%s' AND `what`='%s'".$add." LIMIT 1",
                        array($MODE, $act, $wht), __FUNCTION__, __LINE__, false);
        } elseif (($wht != "overview") && (!empty($wht))) {
                // Other actions
-               $sql = SQL_QUERY_ESC("SELECT id, what FROM `{!_MYSQL_PREFIX!}_%s_menu` WHERE `action`='%s' AND `what`='%s'".$ADD." ORDER BY action DESC LIMIT 1",
+               $sql = SQL_QUERY_ESC("SELECT id, what FROM `{!_MYSQL_PREFIX!}_%s_menu` WHERE `action`='%s' AND `what`='%s'".$add." ORDER BY action DESC LIMIT 1",
                        array($MODE, $act, $wht), __FUNCTION__, __LINE__, false);
        } else {
                // Admin login overview
-               $sql = SQL_QUERY_ESC("SELECT id, what FROM `{!_MYSQL_PREFIX!}_%s_menu` WHERE `action`='%s' AND (what='' OR `what` IS NULL)".$ADD." ORDER BY action DESC LIMIT 1",
+               $sql = SQL_QUERY_ESC("SELECT id, what FROM `{!_MYSQL_PREFIX!}_%s_menu` WHERE `action`='%s' AND (what='' OR `what` IS NULL)".$add." ORDER BY action DESC LIMIT 1",
                        array($MODE, $act), __FUNCTION__, __LINE__, false);
        }
 
@@ -943,7 +943,7 @@ function GET_ACTION ($MODE, &$wht) {
                if (isAdminRegistered()) {
                        // Redirect
                        // @TODO Why does this lead into an endless loop but we still need it???
-                       // Commented out LOAD_URL("admin.php");
+                       // @TODO Commented out LOAD_URL("admin.php");
                } // END - if
        }
 
@@ -1017,31 +1017,33 @@ function GET_PAY_POINTS ($pid, $lookFor = "price") {
        return $ret;
 }
 
-// Remove a receiver's ID from $ARRAY and add a link for him to confirm
-function REMOVE_RECEIVER (&$ARRAY, $key, $uid, $pool_id, $stats_id="", $bonus=false) {
+// Remove a receiver's ID from $receivers and add a link for him to confirm
+function REMOVE_RECEIVER (&$receivers, $key, $uid, $pool_id, $stats_id="", $bonus=false) {
+       // Default is not removed
        $ret = "failed";
-       if ($uid > 0)
-       {
+
+       // Is the userid valid?
+       if ($uid > 0) {
                // Remove entry from array
-               unset($ARRAY[$key]);
+               unset($receivers[$key]);
 
                // Is there already a line for this user available?
-               if ($stats_id > 0)
-               {
+               if ($stats_id > 0) {
                        // Only when we got a real stats ID continue searching for the entry
                        $type = "NORMAL"; $rowName = "stats_id";
                        if ($bonus) { $type = "BONUS"; $rowName = "bonus_id"; }
+
+                       // Try to look the entry up
                        $result = SQL_QUERY_ESC("SELECT id FROM `{!_MYSQL_PREFIX!}_user_links` WHERE %s='%s' AND userid=%s AND link_type='%s' LIMIT 1",
-                        array($rowName, $stats_id, bigintval($uid), $type), __FUNCTION__, __LINE__);
-                       if (SQL_NUMROWS($result) == 0)
-                       {
-                               // No, so we add one!
+                               array($rowName, $stats_id, bigintval($uid), $type), __FUNCTION__, __LINE__);
+
+                       // Was it *not* found?
+                       if (SQL_NUMROWS($result) == 0) {
+                               // So we add one!
                                SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_user_links` (%s, userid, link_type) VALUES ('%s','%s','%s')",
-                                array($rowName, $stats_id, bigintval($uid), $type), __FUNCTION__, __LINE__);
+                                       array($rowName, $stats_id, bigintval($uid), $type), __FUNCTION__, __LINE__);
                                $ret = "done";
-                       }
-                        else
-                       {
+                       } else {
                                // Already found
                                $ret = "already";
                        }
@@ -1050,15 +1052,27 @@ function REMOVE_RECEIVER (&$ARRAY, $key, $uid, $pool_id, $stats_id="", $bonus=fa
                        SQL_FREERESULT($result);
                }
        }
+
        // 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="") {
+function GET_TOTAL_DATA ($search, $tableName, $lookFor = "id", $whereStatement = "userid", $countRows = false, $add = "") {
        $ret = 0;
        //* DEBUG: */ echo $search."/".$tableName."/".$lookFor."/".$whereStatement."/".$add."<br />\n";
-       if (($onlyRows) || ($lookFor == "userid")) {
+       if ((empty($search)) && ($search != "0")) {
+               // Count or sum whole table?
+               if ($countRows === true) {
+                       // Count whole table
+                       $result = SQL_QUERY_ESC("SELECT COUNT(`%s`) FROM `{!_MYSQL_PREFIX!}_%s`".$add,
+                               array($lookFor, $tableName), __FUNCTION__, __LINE__);
+               } else {
+                       // Sum whole table
+                       $result = SQL_QUERY_ESC("SELECT SUM(`%s`) FROM `{!_MYSQL_PREFIX!}_%s`".$add,
+                               array($lookFor, $tableName), __FUNCTION__, __LINE__);
+               }
+       } elseif (($countRows === true) || ($lookFor == "userid")) {
                // Count rows
                //* DEBUG: */ echo "COUNT!<br />\n";
                $result = SQL_QUERY_ESC("SELECT COUNT(`%s`) FROM `{!_MYSQL_PREFIX!}_%s` WHERE `%s`='%s'".$add,
@@ -1528,6 +1542,12 @@ function ADD_OPTION_LINES ($table, $id, $name, $default="", $special="", $where=
 }
 // Activate exchange
 function activateExchange () {
+       // Is the extension 'user' there?
+       if (!EXT_IS_ACTIVE("user")) {
+               // Silently abort here
+               return false;
+       } // END - if
+
        // Check total amount of users
        $totalUsers = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true, " AND max_mails > 0");
 
@@ -2043,16 +2063,16 @@ function USER_STATS_INSERT_RECORD ($uid, $type, $data) {
 function GET_USER_REF_POINTS ($uid, $level) {
        //* DEBUG: */ print "----------------------- <font color=\"#00aa00\">".__FUNCTION__." - ENTRY</font> ------------------------<ul><li>\n";
        // Default is no refs and no nickname
-       $ADD = "";
+       $add = "";
        $refs = array();
 
        // Do we have nickname extension installed?
        if (EXT_IS_ACTIVE("nickname")) {
-               $ADD = ", ud.nickname";
+               $add = ", ud.nickname";
        } // END - if
 
        // Get refs from database
-       $result = SQL_QUERY_ESC("SELECT ur.id, ur.refid, ud.status, ud.last_online, ud.mails_confirmed, ud.emails_received".$ADD."
+       $result = SQL_QUERY_ESC("SELECT ur.id, ur.refid, ud.status, ud.last_online, ud.mails_confirmed, ud.emails_received".$add."
 FROM `{!_MYSQL_PREFIX!}_user_refs` AS ur
 LEFT JOIN `{!_MYSQL_PREFIX!}_user_points` AS up
 ON ur.refid=up.userid AND ur.level=0