mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-08-17 08:41:01 +00:00
rewrite "please don't scream" sql
This commit is contained in:
+93
-263
@@ -3593,269 +3593,99 @@ class MYSQLi_DB implements IDbConnection {
|
|||||||
// please don't scream...
|
// please don't scream...
|
||||||
// with the current table structure, there really IS NOT another way
|
// with the current table structure, there really IS NOT another way
|
||||||
// (except for stored procedures, which we can't rely on to be allowed on the server)
|
// (except for stored procedures, which we can't rely on to be allowed on the server)
|
||||||
$result = mysqli_query($this->dblink,"
|
$result = mysqli_query($this->dblink, 'SELECT '.
|
||||||
SELECT
|
'CASE '.
|
||||||
IF(
|
'WHEN `f1t` IN ('.$fieldType.') THEN `f1` '.
|
||||||
f1t IN ($fieldType),
|
'WHEN `f2t` IN ('.$fieldType.') THEN `f2` '.
|
||||||
f1,
|
'WHEN `f3t` IN ('.$fieldType.') THEN `f3` '.
|
||||||
IF(
|
'WHEN `f4t` IN ('.$fieldType.') THEN `f4` '.
|
||||||
f2t IN ($fieldType),
|
'WHEN `f5t` IN ('.$fieldType.') THEN `f5` '.
|
||||||
f2,
|
'WHEN `f6t` IN ('.$fieldType.') THEN `f6` '.
|
||||||
IF(
|
'WHEN `f7t` IN ('.$fieldType.') THEN `f7` '.
|
||||||
f3t IN ($fieldType),
|
'WHEN `f8t` IN ('.$fieldType.') THEN `f8` '.
|
||||||
f3,
|
'WHEN `f9t` IN ('.$fieldType.') THEN `f9` '.
|
||||||
IF(
|
'WHEN `f10t` IN ('.$fieldType.') THEN `f10` '.
|
||||||
f4t IN ($fieldType),
|
'WHEN `f11t` IN ('.$fieldType.') THEN `f11` '.
|
||||||
f4,
|
'WHEN `f12t` IN ('.$fieldType.') THEN `f12` '.
|
||||||
IF(
|
'WHEN `f13t` IN ('.$fieldType.') THEN `f13` '.
|
||||||
f5t IN ($fieldType),
|
'WHEN `f14t` IN ('.$fieldType.') THEN `f14` '.
|
||||||
f5,
|
'WHEN `f15t` IN ('.$fieldType.') THEN `f15` '.
|
||||||
IF(
|
'WHEN `f16t` IN ('.$fieldType.') THEN `f16` '.
|
||||||
f6t IN ($fieldType),
|
'WHEN `f17t` IN ('.$fieldType.') THEN `f17` '.
|
||||||
f6,
|
'WHEN `f18t` IN ('.$fieldType.') THEN `f18` '.
|
||||||
IF(
|
'WHEN `f19t` IN ('.$fieldType.') THEN `f19` '.
|
||||||
f7t IN ($fieldType),
|
'WHEN `f20t` IN ('.$fieldType.') THEN `f20` '.
|
||||||
f7,
|
'WHEN `f21t` IN ('.$fieldType.') THEN `f21` '.
|
||||||
IF(
|
'WHEN `f22t` IN ('.$fieldType.') THEN `f22` '.
|
||||||
f8t IN ($fieldType),
|
'WHEN `f23t` IN ('.$fieldType.') THEN `f23` '.
|
||||||
f8,
|
'WHEN `f24t` IN ('.$fieldType.') THEN `f24` '.
|
||||||
IF(
|
'WHEN `f25t` IN ('.$fieldType.') THEN `f25` '.
|
||||||
f9t IN ($fieldType),
|
'WHEN `f26t` IN ('.$fieldType.') THEN `f26` '.
|
||||||
f9,
|
'WHEN `f27t` IN ('.$fieldType.') THEN `f27` '.
|
||||||
IF(
|
'WHEN `f28t` IN ('.$fieldType.') THEN `f28` '.
|
||||||
f10t IN ($fieldType),
|
'WHEN `f29t` IN ('.$fieldType.') THEN `f29` '.
|
||||||
f10,
|
'WHEN `f30t` IN ('.$fieldType.') THEN `f30` '.
|
||||||
IF(
|
'WHEN `f31t` IN ('.$fieldType.') THEN `f31` '.
|
||||||
f11t IN ($fieldType),
|
'WHEN `f32t` IN ('.$fieldType.') THEN `f32` '.
|
||||||
f11,
|
'WHEN `f33t` IN ('.$fieldType.') THEN `f33` '.
|
||||||
IF(
|
'WHEN `f34t` IN ('.$fieldType.') THEN `f34` '.
|
||||||
f12t IN ($fieldType),
|
'WHEN `f35t` IN ('.$fieldType.') THEN `f35` '.
|
||||||
f12,
|
'WHEN `f36t` IN ('.$fieldType.') THEN `f36` '.
|
||||||
IF(
|
'WHEN `f37t` IN ('.$fieldType.') THEN `f37` '.
|
||||||
f13t IN ($fieldType),
|
'WHEN `f38t` IN ('.$fieldType.') THEN `f38` '.
|
||||||
f13,
|
'WHEN `f39t` IN ('.$fieldType.') THEN `f39` '.
|
||||||
IF(
|
'WHEN `f40t` IN ('.$fieldType.') THEN `f40` '.
|
||||||
f14t IN ($fieldType),
|
'WHEN `f99t` IN ('.$fieldType.') THEN `f99` '.
|
||||||
f14,
|
'ELSE 0 '.
|
||||||
IF(
|
'END AS level '.
|
||||||
f15t IN ($fieldType),
|
'FROM `'.TB_PREFIX.'fdata` '.
|
||||||
f15,
|
'WHERE '.
|
||||||
IF(
|
'`vref` = '.$vid.' '.
|
||||||
f16t IN ($fieldType),
|
'AND ('.
|
||||||
f16,
|
'`f1t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f2t` IN ('.$fieldType.') OR '.
|
||||||
f17t IN ($fieldType),
|
'`f3t` IN ('.$fieldType.') OR '.
|
||||||
f17,
|
'`f4t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f5t` IN ('.$fieldType.') OR '.
|
||||||
f18t IN ($fieldType),
|
'`f6t` IN ('.$fieldType.') OR '.
|
||||||
f18,
|
'`f7t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f8t` IN ('.$fieldType.') OR '.
|
||||||
f19t IN ($fieldType),
|
'`f9t` IN ('.$fieldType.') OR '.
|
||||||
f19,
|
'`f10t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f11t` IN ('.$fieldType.') OR '.
|
||||||
f20t IN ($fieldType),
|
'`f12t` IN ('.$fieldType.') OR '.
|
||||||
f20,
|
'`f13t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f14t` IN ('.$fieldType.') OR '.
|
||||||
f20t IN ($fieldType),
|
'`f15t` IN ('.$fieldType.') OR '.
|
||||||
f20,
|
'`f16t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f17t` IN ('.$fieldType.') OR '.
|
||||||
f21t IN ($fieldType),
|
'`f18t` IN ('.$fieldType.') OR '.
|
||||||
f21,
|
'`f19t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f20t` IN ('.$fieldType.') OR '.
|
||||||
f22t IN ($fieldType),
|
'`f20t` IN ('.$fieldType.') OR '.
|
||||||
f22,
|
'`f21t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f22t` IN ('.$fieldType.') OR '.
|
||||||
f23t IN ($fieldType),
|
'`f23t` IN ('.$fieldType.') OR '.
|
||||||
f23,
|
'`f24t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f25t` IN ('.$fieldType.') OR '.
|
||||||
f24t IN ($fieldType),
|
'`f26t` IN ('.$fieldType.') OR '.
|
||||||
f24,
|
'`f27t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f28t` IN ('.$fieldType.') OR '.
|
||||||
f25t IN ($fieldType),
|
'`f29t` IN ('.$fieldType.') OR '.
|
||||||
f25,
|
'`f30t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f30t` IN ('.$fieldType.') OR '.
|
||||||
f26t IN ($fieldType),
|
'`f31t` IN ('.$fieldType.') OR '.
|
||||||
f26,
|
'`f32t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f33t` IN ('.$fieldType.') OR '.
|
||||||
f27t IN ($fieldType),
|
'`f34t` IN ('.$fieldType.') OR '.
|
||||||
f27,
|
'`f35t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f36t` IN ('.$fieldType.') OR '.
|
||||||
f28t IN ($fieldType),
|
'`f37t` IN ('.$fieldType.') OR '.
|
||||||
f28,
|
'`f38t` IN ('.$fieldType.') OR '.
|
||||||
IF(
|
'`f39t` IN ('.$fieldType.') OR '.
|
||||||
f29t IN ($fieldType),
|
'`f40t` IN ('.$fieldType.') OR '.
|
||||||
f29,
|
'`f99t` IN ('.$fieldType.')) '.
|
||||||
IF(
|
'LIMIT 1');
|
||||||
f30t IN ($fieldType),
|
|
||||||
f30,
|
|
||||||
IF(
|
|
||||||
f31t IN ($fieldType),
|
|
||||||
f31,
|
|
||||||
IF(
|
|
||||||
f32t IN ($fieldType),
|
|
||||||
f32,
|
|
||||||
IF(
|
|
||||||
f33t IN ($fieldType),
|
|
||||||
f33,
|
|
||||||
IF(
|
|
||||||
f34t IN ($fieldType),
|
|
||||||
f34,
|
|
||||||
IF(
|
|
||||||
f35t IN ($fieldType),
|
|
||||||
f35,
|
|
||||||
IF(
|
|
||||||
f36t IN ($fieldType),
|
|
||||||
f36,
|
|
||||||
IF(
|
|
||||||
f37t IN ($fieldType),
|
|
||||||
f37,
|
|
||||||
IF(
|
|
||||||
f38t IN ($fieldType),
|
|
||||||
f38,
|
|
||||||
IF(
|
|
||||||
f39t IN ($fieldType),
|
|
||||||
f39,
|
|
||||||
IF(
|
|
||||||
f40t IN ($fieldType),
|
|
||||||
f40,
|
|
||||||
IF(
|
|
||||||
f99t IN ($fieldType),
|
|
||||||
f99,
|
|
||||||
0
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
) as level
|
|
||||||
FROM
|
|
||||||
".TB_PREFIX."fdata
|
|
||||||
WHERE
|
|
||||||
vref = $vid
|
|
||||||
AND
|
|
||||||
(f1t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f2t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f3t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f4t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f5t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f6t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f7t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f8t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f9t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f10t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f11t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f12t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f13t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f14t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f15t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f16t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f17t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f18t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f19t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f20t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f20t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f21t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f22t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f23t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f24t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f25t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f26t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f27t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f28t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f29t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f30t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f30t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f31t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f32t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f33t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f34t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f35t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f36t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f37t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f38t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f39t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f40t IN ($fieldType)
|
|
||||||
OR
|
|
||||||
f99t IN ($fieldType))
|
|
||||||
LIMIT 1
|
|
||||||
");
|
|
||||||
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
|
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
|
||||||
|
|
||||||
self::$fieldLevelsInVillageSearchCache[$vid.$fieldType] = $row['level'];
|
self::$fieldLevelsInVillageSearchCache[$vid.$fieldType] = $row['level'];
|
||||||
|
|||||||
Reference in New Issue
Block a user