| revloc02c | 
			10-23-2011 02:09 AM | 
		 
		 
		 
		
		
		Umm, there were some bugs in the code, so here's the edited version with all the fixes and updates: 
	Code: 
	
 -- ---------------------------- 
-- Function structure for `fn_displayClasses` 
-- ---------------------------- 
DROP FUNCTION IF EXISTS `fn_displayClasses`; 
DELIMITER ;; 
CREATE DEFINER=`root`@`localhost` FUNCTION `fn_displayClasses`(classes int) RETURNS varchar(128) CHARSET utf8 
BEGIN 
        -- receives bitmask number for classes and converts it to a list of classes 
 
        DECLARE classList VARCHAR(128); 
        SET classList = ""; 
 
        IF classes = 0 THEN 
                SET classList = CONCAT(classList, "None, "); 
        END IF; 
        IF (classes & 1) = 1 THEN 
                SET classList = CONCAT(classList, "WAR, "); 
        END IF; 
        IF (classes & 2) = 2 THEN 
                SET classList = CONCAT(classList, "CLR, "); 
        END IF; 
        IF (classes & 4) = 4 THEN 
                SET classList = CONCAT(classList, "PAL, "); 
        END IF; 
        IF (classes & 8) = 8 THEN 
                SET classList = CONCAT(classList, "RGN, "); 
        END IF; 
        IF (classes & 16) = 16 THEN 
                SET classList = CONCAT(classList, "SHD, "); 
        END IF; 
        IF (classes & 32) = 32 THEN 
                SET classList = CONCAT(classList, "DRU, "); 
        END IF; 
        IF (classes & 64) = 64 THEN 
                SET classList = CONCAT(classList, "MNK, "); 
        END IF; 
        IF (classes & 128) = 128 THEN 
                SET classList = CONCAT(classList, "BRD, "); 
        END IF; 
        IF (classes & 256) = 256 THEN 
                SET classList = CONCAT(classList, "ROG, "); 
        END IF; 
        IF (classes & 512) = 512 THEN 
                SET classList = CONCAT(classList, "SHM, "); 
        END IF; 
        IF (classes & 1024) = 1024 THEN 
                SET classList = CONCAT(classList, "NEC, "); 
        END IF; 
        IF (classes & 2048) = 2048 THEN 
                SET classList = CONCAT(classList, "WIZ, "); 
        END IF; 
        IF (classes & 4096) = 4096 THEN 
                SET classList = CONCAT(classList, "MAG, "); 
        END IF; 
        IF (classes & 8192) = 8192 THEN 
                SET classList = CONCAT(classList, "ENC, "); 
        END IF; 
        IF (classes & 16384) = 16384 THEN 
                SET classList = CONCAT(classList, "BST, "); 
        END IF; 
        IF (classes & 32768) = 32768 THEN 
                SET classList = CONCAT(classList, "BER, "); 
        END IF; 
        IF classes = 65535 THEN 
                SET classList = "ALL, "; 
        END IF; 
 
        SET classList = LEFT(classList, (LENGTH(classList) - 2)); 
        RETURN classList; 
 
END 
;; 
DELIMITER ; 
 Also made one for races:
 
	Code: 
	
 -- ---------------------------- 
-- Function structure for `fn_displayRaces` 
-- ---------------------------- 
DROP FUNCTION IF EXISTS `fn_displayRaces`; 
DELIMITER ;; 
CREATE DEFINER=`root`@`localhost` FUNCTION `fn_displayRaces`(races int) RETURNS varchar(128) CHARSET utf8 
BEGIN 
        -- receives bitmask number for races and converts it to a list of races 
 
        DECLARE raceList VARCHAR(128); 
        SET raceList = ""; 
 
        IF races = 0 THEN 
                SET raceList = CONCAT(raceList, "None, "); 
        END IF; 
        IF (races & 1) = 1 THEN 
                SET raceList = CONCAT(raceList, "HUM, "); 
        END IF; 
        IF (races & 2) = 2 THEN 
                SET raceList = CONCAT(raceList, "BAR, "); 
        END IF; 
        IF (races & 4) = 4 THEN 
                SET raceList = CONCAT(raceList, "ERU, "); 
        END IF; 
        IF (races & 8) = 8 THEN 
                SET raceList = CONCAT(raceList, "ELF, "); 
        END IF; 
        IF (races & 16) = 16 THEN 
                SET raceList = CONCAT(raceList, "HIE, "); 
        END IF; 
        IF (races & 32) = 32 THEN 
                SET raceList = CONCAT(raceList, "DEF, "); 
        END IF; 
        IF (races & 64) = 64 THEN 
                SET raceList = CONCAT(raceList, "HEF, "); 
        END IF; 
        IF (races & 128) = 128 THEN 
                SET raceList = CONCAT(raceList, "DWF, "); 
        END IF; 
        IF (races & 256) = 256 THEN 
                SET raceList = CONCAT(raceList, "TRL, "); 
        END IF; 
        IF (races & 512) = 512 THEN 
                SET raceList = CONCAT(raceList, "OGR, "); 
        END IF; 
        IF (races & 1024) = 1024 THEN 
                SET raceList = CONCAT(raceList, "HFL, "); 
        END IF; 
        IF (races & 2048) = 2048 THEN 
                SET raceList = CONCAT(raceList, "GNM, "); 
        END IF; 
        IF (races & 4096) = 4096 THEN 
                SET raceList = CONCAT(raceList, "IKS, "); 
        END IF; 
        IF (races & 8192) = 8192 THEN 
                SET raceList = CONCAT(raceList, "VAH, "); 
        END IF; 
        IF (races & 16384) = 16384 THEN 
                SET raceList = CONCAT(raceList, "FRG, "); 
        END IF; 
        IF (races & 32768) = 32768 THEN 
                SET raceList = CONCAT(raceList, "Shroud, "); 
        END IF; 
        IF races = 65535 THEN 
                SET raceList = "ALL, "; 
        END IF; 
 
        SET raceList = LEFT(raceList, (LENGTH(raceList) - 2)); 
        RETURN raceList; 
 
END 
;; 
DELIMITER ; 
 And here's an example of how you might use them:
 
	Code: 
	
 SELECT id, name, weight, itemtype, price, (damage/delay) AS 'Dmg/Dly', classes, fn_displayClasses(classes) AS "Classes List", races, fn_displayRaces(races) AS "Races List" 
        FROM items 
        WHERE itemtype < 10 
        ORDER BY itemtype; 
  
	 |