New function fetchUserData() introduced to API, total rewrite (not all)
[mailer.git] / inc / modules / admin / what-repair_cats.php
index 1c3ce00b96daaa2e5480736a53b696bd7add5a67..84dc4dda2d11ba003c18400eeae37699a1746b9d 100644 (file)
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
        die();
-}
+} // END - if
 
 // Add description as navigation point
 addMenuDescription('admin', __FILE__);
 
-$result = SQL_QUERY("SELECT userid FROM `{?_MYSQL_PREFIX?}_user_cats` ORDER BY `userid` ASC", __FILE__, __LINE__);
+// Go through all categories
+$result = SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_cats` GROUP BY `userid` ORDER BY `userid` ASC", __FILE__, __LINE__);
 if (SQL_NUMROWS($result) > 0) {
+        // Nothing is removed for now... ;-)
+       $REMOVED = 0;
+
        // Check if found userid is also found in user_data table
-       $REMOVED = 0; // Nothing is removed for now... ;-)
        while ($content = SQL_FETCHARRAY($result)) {
-               $result_user = SQL_QUERY_ESC("SELECT userid FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1",
-               array(bigintval($content['userid'])), __FILE__, __LINE__);
-               if (SQL_NUMROWS($result_user) == 0) {
+               // Is the account not there?
+               if (!fetchUserData($content['userid'])) {
                        // Ok, we found something to remove
                        SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `userid`=%s",
-                       array(bigintval($content['userid'])), __FILE__, __LINE__);
+                               array(bigintval($content['userid'])), __FILE__, __LINE__);
                        $REMOVED += SQL_AFFECTEDROWS();
                } else {
                        // Free memory
@@ -62,9 +64,6 @@ if (SQL_NUMROWS($result) > 0) {
                }
        } // END - while
 
-       // Free memory
-       SQL_FREERESULT($result);
-
        if ($REMOVED > 0) {
                // Entries repaired
                $content = sprintf(getMessage('ADMIN_REPAIR_ENTRIES_FIXED'), $REMOVED);