Тема срачей, говнокода и путей их преодоления

oxy

Знаток
🏆
📜
Сообщения
466
Реакции
123
PHP:
mt_rand(1000,9999)


PHP:
$digits = 3;
echo str_pad(rand(0, pow(10, $digits)-1), $digits, '0', STR_PAD_LEFT);
 
Последнее редактирование:

Insallah

¯\_(ツ)_/¯
🏆
📜
Сообщения
1,564
Реакции
491
rand не сгенерит пин с нулями перед числом.
второй уже да.
 

Insallah

¯\_(ツ)_/¯
🏆
📜
Сообщения
1,564
Реакции
491
Слишком сложные запросы, говорил я, надо упростить, говорил я. Не заметил как немного увлёкся...
SQL:
select
  sum(greatest(strength + (ifnull((select sum(add_strength) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)), 0)) as strength,
  sum(greatest(dexterity + (ifnull((select sum(add_dexterity) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)), 0)) as dexterity,
  sum(greatest(intuition + (ifnull((select sum(add_intuition) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)), 0)) as intuition,
  sum(greatest(endurance + (ifnull((select sum(add_endurance) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)), 0)) as endurance,
  sum(greatest(intelligence + (ifnull((select sum(add_intelligence) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)), 0)) as intelligence,
  sum(greatest(wisdom + (ifnull((select sum(add_wisdom) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)), 0)) as wisdom,
  ifnull((select sum(add_accuracy) from inventory where dressed_slot != 0 and owner_id = $this->id), 0) as accuracy,
  ifnull((select sum(add_evasion) from inventory where dressed_slot != 0 and owner_id = $this->id), 0) as evasion,
  ifnull((select sum(add_criticals) from inventory where dressed_slot != 0 and owner_id = $this->id), 0) as criticals,
  sum(greatest($this->minDamage + (ifnull((select sum(add_min_physical_damage) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)), 0)) as min_physical_damage,
  sum(greatest($this->maxDamage + (ifnull((select sum(add_max_physical_damage) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)), 0)) as max_physical_damage
from users where id = $this->id
 

Insallah

¯\_(ツ)_/¯
🏆
📜
Сообщения
1,564
Реакции
491
Блѣ!
SQL:
select
   sum(greatest(strength + (ifnull((select sum(add_strength) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)) + (ifnull((select sum(mod_strength) from users_effects where owner_id = $this->id), 0)), 0)) as strength,
   sum(greatest(dexterity + (ifnull((select sum(add_dexterity) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)) + (ifnull((select sum(mod_dexterity) from users_effects where owner_id = $this->id), 0)), 0)) as dexterity,
   sum(greatest(intuition + (ifnull((select sum(add_intuition) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)) + (ifnull((select sum(mod_intuition) from users_effects where owner_id = $this->id), 0)), 0)) as intuition,
   sum(greatest(endurance + (ifnull((select sum(add_endurance) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)) + (ifnull((select sum(mod_endurance) from users_effects where owner_id = $this->id), 0)), 0)) as endurance,
   sum(greatest(intelligence + (ifnull((select sum(add_intelligence) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)) + (ifnull((select sum(mod_intelligence) from users_effects where owner_id = $this->id), 0)), 0)) as intelligence,
   sum(greatest(wisdom + (ifnull((select sum(add_wisdom) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)) + (ifnull((select sum(mod_wisdom) from users_effects where owner_id = $this->id), 0)), 0)) as wisdom,
   ifnull((select sum(add_accuracy) from inventory where dressed_slot != 0 and owner_id = $this->id), 0) as accuracy,
   ifnull((select sum(add_evasion) from inventory where dressed_slot != 0 and owner_id = $this->id), 0) as evasion,
   ifnull((select sum(add_criticals) from inventory where dressed_slot != 0 and owner_id = $this->id), 0) as criticals,
   sum(greatest($this->minDamage + (ifnull((select sum(add_min_physical_damage) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)), 0)) as min_physical_damage,
   sum(greatest($this->maxDamage + (ifnull((select sum(add_max_physical_damage) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)), 0)) as max_physical_damage
from users where id = $this->id
 

fulugan

Некто
📜
Сообщения
15
Реакции
2
Блѣ!
SQL:
select
   sum(greatest(strength + (ifnull((select sum(add_strength) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)) + (ifnull((select sum(mod_strength) from users_effects where owner_id = $this->id), 0)), 0)) as strength,
   sum(greatest(dexterity + (ifnull((select sum(add_dexterity) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)) + (ifnull((select sum(mod_dexterity) from users_effects where owner_id = $this->id), 0)), 0)) as dexterity,
   sum(greatest(intuition + (ifnull((select sum(add_intuition) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)) + (ifnull((select sum(mod_intuition) from users_effects where owner_id = $this->id), 0)), 0)) as intuition,
   sum(greatest(endurance + (ifnull((select sum(add_endurance) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)) + (ifnull((select sum(mod_endurance) from users_effects where owner_id = $this->id), 0)), 0)) as endurance,
   sum(greatest(intelligence + (ifnull((select sum(add_intelligence) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)) + (ifnull((select sum(mod_intelligence) from users_effects where owner_id = $this->id), 0)), 0)) as intelligence,
   sum(greatest(wisdom + (ifnull((select sum(add_wisdom) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)) + (ifnull((select sum(mod_wisdom) from users_effects where owner_id = $this->id), 0)), 0)) as wisdom,
   ifnull((select sum(add_accuracy) from inventory where dressed_slot != 0 and owner_id = $this->id), 0) as accuracy,
   ifnull((select sum(add_evasion) from inventory where dressed_slot != 0 and owner_id = $this->id), 0) as evasion,
   ifnull((select sum(add_criticals) from inventory where dressed_slot != 0 and owner_id = $this->id), 0) as criticals,
   sum(greatest($this->minDamage + (ifnull((select sum(add_min_physical_damage) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)), 0)) as min_physical_damage,
   sum(greatest($this->maxDamage + (ifnull((select sum(add_max_physical_damage) from inventory where dressed_slot != 0 and owner_id = $this->id), 0)), 0)) as max_physical_damage
from users where id = $this->id
Зачем? Разве не лучше просто выбрать нужные параметры, а расчеты вынести в пхп? - Да не, херня какая - то (с)
 

Insallah

¯\_(ツ)_/¯
🏆
📜
Сообщения
1,564
Реакции
491
Считает статы со всеми плюсами минусами только на этапе запроса. Не знаю будет ли сильно быстрее, если сделать это кучей коротких запросов и писать логику на пхп. Но тут у тебя конечное число на выходе, а там надо развлекаться в каком порядке и при каких условиях делать математику.
 

fulugan

Некто
📜
Сообщения
15
Реакции
2
Считает статы со всеми плюсами минусами только на этапе запроса. Не знаю будет ли сильно быстрее, если сделать это кучей коротких запросов и писать логику на пхп. Но тут у тебя конечное число на выходе, а там надо развлекаться в каком порядке и при каких условиях делать математику.
может и ошибаюсь, но несколько легких запросов против одного тяжелого будут не в пользу тяжелого
 

The Kite Runner

Постигающий
📜
Сообщения
185
Реакции
47
может и ошибаюсь, но несколько легких запросов против одного тяжелого будут не в пользу тяжелого
Если грамотно его составить, то 1 запрос будет работать быстрее чем кучка мелких....
Вообще рекомендую смотреть в сторону грамотных запрос и уменьшения их количества
 

RoBoT

Некто
📜
Сообщения
20
Реакции
5
ну вообще текущий запрос тяжеловат, так как для его выполнения mysql создаст временную таблицу и начнет туда все сливать из всех запросов которые настроганы, а тут зачем-то много подзапросов к одним и тем же таблицам к разной выборке, но при этом для подсчета сумм.
С учетом кеширования mysql и работы индексов, несколько мелких запросов, а в данном случае их всего-лишь 3 штуки, причем коротких и агрегированных - будут намного быстрее.

Текущий запрос явно не оптимизация темболее для php, если говорим в рамках процедурок в БД, то еще зайдет )))
 

Insallah

¯\_(ツ)_/¯
🏆
📜
Сообщения
1,564
Реакции
491
Я человек простой: сначала пишу логику что я хочу получить, потом оптимизирую. Если оптимизировать в процессе, то держа абстракции в голове ты просто теряешься.
То на что вы все громко намекали:
PHP:
public function getFullStats(): object
{
    $stats = self::$db->ofetch("
        select
               strength,
               dexterity,
               intuition,
               endurance,
               intelligence,
               wisdom
        from users where id = $this->id");
    $itemBonuses = self::$db->ofetch("
        select
               sum(add_strength) as item_strength,
               sum(add_dexterity) as item_dexterity,
               sum(add_intuition) as item_intuition,
               sum(add_endurance) as item_endurance,
               sum(add_intelligence) as item_intelligence,
               sum(add_wisdom) as item_wisdom,
               sum(add_accuracy) as item_accuracy,
               sum(add_evasion) as item_evasion,
               sum(add_criticals) as item_criticals,
               sum(add_min_physical_damage) as item_min_physical_damage,
               sum(add_max_physical_damage) as item_max_physical_damage
        from inventory where dressed_slot != 0 and owner_id = $this->id");
    $effectBonuses = self::$db->ofetch("
        select
               sum(mod_strength) as effect_strength,
               sum(mod_dexterity) as effect_dexterity,
               sum(mod_intuition) as effect_intuition,
               sum(mod_endurance) as effect_endurance,
               sum(mod_intelligence) as effect_intelligence,
               sum(mod_wisdom) as effect_wisdom
        from users_effects where owner_id = $this->id");
    $stats = (object)[];
    $stats->strength = max(0,$stats->strength + $itemBonuses->item_strength + $effectBonuses->effect_strength);
    $stats->dexterity = max(0,$stats->dexterity + $itemBonuses->item_dexterity + $effectBonuses->effect_dexterity);
    $stats->intuition = max(0,$stats->intuition + $itemBonuses->item_intuition + $effectBonuses->effect_intuition);
    $stats->endurance = max(0,$stats->endurance + $itemBonuses->item_endurance + $effectBonuses->effect_endurance);
    $stats->intelligence = max(0,$stats->intelligence + $itemBonuses->item_intelligence + $effectBonuses->effect_intelligence);
    $stats->wisdom = max(0,$stats->wisdom + $itemBonuses->item_wisdom + $effectBonuses->effect_wisdom);
    $stats->accuracy = max(0, $itemBonuses->item_accuracy);
    $stats->evasion = max(0, $itemBonuses->item_evasion);
    $stats->criticals = max(0, $itemBonuses->item_criticals);
    $stats->min_physical_damage = max($this->minDamage, $this->minDamage + $itemBonuses->item_min_physical_damage);
    $stats->max_physical_damage = max($this->maxDamage, $this->maxDamage + $itemBonuses->item_max_physical_damage);
    return $stats;
}
 
Последнее редактирование:

Insallah

¯\_(ツ)_/¯
🏆
📜
Сообщения
1,564
Реакции
491
Внезапно!
PHP:
$b = new class {
    function __destruct() {
        $GLOBALS['b'] = 2;
    }
};

$a = 1;
$b = 1;
var_dump($a + $b);
// 3
 

The Kite Runner

Постигающий
📜
Сообщения
185
Реакции
47
Внезапно!
PHP:
$b = new class {
    function __destruct() {
        $GLOBALS['b'] = 2;
    }
};

$a = 1;
$b = 1;
var_dump($a + $b);
// 3
Забавно. Прям перед твоей публикацией тут, в рабочем чате опубликовали тоже самое) Совпадение? Или Инс спалился?
 

Insallah

¯\_(ツ)_/¯
🏆
📜
Сообщения
1,564
Реакции
491
Выдача то ли гаек, то ли болтов, то ещё какой мути из канализации.
PHP:
// начинается с $total_mass < 3
if ($total_mass >= 12) {
  $vsego = "12";
  $ziton = "4";
}
if ($total_mass >= 15) {
  $vsego = "15";
  $ziton = "5";
}
if ($total_mass >= 18) {
  $vsego = "18";
  $ziton = "6";
}

// и так до $total_mass >= 200 с шагом 3
// мягко говоря, дохуя строчек.

Нихуя не понятно какой ум это родил. И главное - как ему не впадлу было всё это руками забивать построчно. Мазохисты, ёпта!

PHP:
$total_mass = [2,3,4,5,6,7,8,9,10,11,12,13];
foreach ($total_mass as $tm) {
    $ziton = intval($tm/3);
    $vsego = $ziton * 3;

    echo <<<EOL
    --
    tm = $tm
    z = $ziton
    v = $vsego
    --
EOL;
}

/* Проверяем:
    --
    tm = 2
    z = 0
    v = 0
    --    --
    tm = 3
    z = 1
    v = 3
    --    --
    tm = 4
    z = 1
    v = 3
    --    --
    tm = 5
    z = 1
    v = 3
    --    --
    tm = 6
    z = 2
    v = 6
    --    --
    tm = 7
    z = 2
    v = 6
    --    --
    tm = 8
    z = 2
    v = 6
    --    --
    tm = 9
    z = 3
    v = 9
    --    --
    tm = 10
    z = 3
    v = 9
    --    --
    tm = 11
    z = 3
    v = 9
    --    --
    tm = 12
    z = 4
    v = 12
    --    --
    tm = 13
    z = 4
    v = 12
    --
*/
 

Insallah

¯\_(ツ)_/¯
🏆
📜
Сообщения
1,564
Реакции
491
Скорее "насяльнике, иди смотри, я написал тебе выдачу предметов, я долго старался и потратил две недели, вот доказательство - сотни строчек кода, денег много дай, насяльнике?". ))
 

RoBoT

Некто
📜
Сообщения
20
Реакции
5
PHP:
sprintf('%06d', mt_rand(1, 999));
Генерирует нули перед числом :)
 

Bayer

Специалист
⚖️
🏆
📜
Сообщения
761
Реакции
257
Ля шо творят, ля.

Объясните мне, а что вот это такое?
PHP:
$yron = floor(abs($yron)/50*(57.5-$this->stats[$this->uids[$u2]]['zmproc']));
Тут идёт проверка урона от приема -> вот эта штука сверху это если есть защита от урона
И я вот не понимаю ничего, зачем, к чему эти цифры вообще и что они хотят посчитать.



Как то так должно быть
PHP:
$yron = floor(abs($yron) - $this->stats[$this->uids[$u2]]['zmproc']);
//или
$yron -= $this->stats[$this->uids[$u2]]['zmproc'];
 

Insallah

¯\_(ツ)_/¯
🏆
📜
Сообщения
1,564
Реакции
491
И я вот не понимаю ничего, зачем, к чему эти цифры вообще и что они хотят посчитать.
Если $this->stats[$this->uids[$u2]]['zmproc'] больше чем 57.5, то $yron отрицательный. Похоже костыль из-за экономии строчек и нежелания отдельную проверку замутить. А в числителе, внезапно, парабола. При этом при значении 57,5 скрипт крашится. :)
 

Bayer

Специалист
⚖️
🏆
📜
Сообщения
761
Реакции
257
Крутости в бк

PHP:
$sp = mysql_query('SELECT * FROM `items_users` WHERE `delete` = "0" AND `1price` > "0" AND `uid` = "'.$user['id'].'"');
while ($pl = mysql_fetch_array($sp)){
    $item_main = mysql_fetch_array(mysql_query('SELECT * FROM `items_main` WHERE `id` = "'.$pl['item_id'].'" LIMIT 1'));
    mysql_query('UPDATE `items_users` SET `1price` = "'.$item_main['price1'].'" WHERE `id` = "'.$pl['id'].'" AND `uid` = "'.$user['id'].'" LIMIT 1');
}

Эмммм.... what?

Как то вот так:
SQL:
UPDATE `items_users` SET `1price` = (SELECT `price1` FROM `items_main` WHERE `items_main`.`id` = `items_users`.`item_id`) WHERE `1price` > 0 AND `delete` = 0 AND `uid` = значение
 
Последнее редактирование:

k880TR

Интересующийся
📜
Сообщения
78
Реакции
12
А апдейт в цикле дает ещё и хорошую нагрузку)
 

k880TR

Интересующийся
📜
Сообщения
78
Реакции
12
меня другое веселит, вот эта дичь:
PHP:
$cl = mysqli_query($GLOBALS['db'], 'SELECT
`items_users`.`id` as id, `items_users`.`id` AS `idu`,`items_users`.`item_id` as item_id,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,
`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,
`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,
`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,
`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id` as item_id,`items_main`.`name`,
`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,
`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,
`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,
`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,
`items_main`.`lvl_aexp` , count(`items_users`.`id`) as inGroupCount
FROM `items_users`
LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`)
LEFT JOIN `items_shop` ON (`items_shop`.`item_id` = `items_main`.`id`)
WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp()  OR `items_main`.srok = "0")
AND `items_users`.`delete`="0"
AND `items_users`.`item_id` = "' . (int)$_GET['itemid'] . '"
AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` != "18" AND `items_main`.`type` != "19" AND `items_main`.`type` != "20" AND `items_main`.`type` != "21" AND `items_main`.`type` != "22" AND `items_main`.`type` != "15" AND `items_main`.`type` != "12" AND `items_main`.`type` != "4" AND `items_main`.`type` != "5" AND `items_main`.`type` != "6" AND `items_main`.`type` != "1" AND `items_main`.`type` != "3" AND `items_main`.`type` != "8" AND `items_main`.`type` != "14" AND `items_main`.`type` != "13" AND `items_main`.`type` != "9" AND `items_main`.`type` != "10" AND `items_main`.`type` != "11" AND `items_main`.`type` != "29" AND `items_main`.`type` != "30"
GROUP BY `items_users`.`inGroup`, `items_users`.`uid`,`items_users`.`1price` HAVING `items_users`.inGroup > 0
UNION ALL
SELECT `items_users`.`id` as id, `items_users`.`id` AS `idu`,`items_users`.`item_id` as item_id,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,
`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,
`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,
`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,
`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id` as item_id,`items_main`.`name`,
`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,
`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,
`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,
`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,
`items_main`.`lvl_aexp`, count(`items_users`.`id`) as inGroupCount
FROM  `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`)
WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp()  OR `items_main`.srok = "0") AND `items_users`.`delete`="0"  AND `items_users`.`item_id` = "' . (int)$_GET['itemid'] . '"
AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` != "18" AND `items_main`.`type` != "19" AND `items_main`.`type` != "20" AND `items_main`.`type` != "21" AND `items_main`.`type` != "22" AND `items_main`.`type` != "15" AND `items_main`.`type` != "12" AND `items_main`.`type` != "4" AND `items_main`.`type` != "5" AND `items_main`.`type` != "6" AND `items_main`.`type` != "1" AND `items_main`.`type` != "3" AND `items_main`.`type` != "8" AND `items_main`.`type` != "14" AND `items_main`.`type` != "13" AND `items_main`.`type` != "9" AND `items_main`.`type` != "10" AND `items_main`.`type` != "11" AND `items_main`.`type` != "29" AND `items_main`.`type` != "30"
GROUP BY `items_users`.`uid`,`items_users`.`1price` HAVING `items_users`.inGroup = 0
ORDER BY `1price` ASC , `inGroupCount` DESC');

Да, это знакомая многим комиссионка..... Чем нужно было думать разрабу, что бы такую дичь накалякать....

И продолжение кунст камеры:
PHP:
if ((int)$_GET['otdel'] == 1) {
            $typeOtdel = 18;
        } elseif ((int)$_GET['otdel'] == 2) {
            $typeOtdel = 19;
        } elseif ((int)$_GET['otdel'] == 3) {
            $typeOtdel = 20;
        } elseif ((int)$_GET['otdel'] == 4) {
            $typeOtdel = 21;
        } elseif ((int)$_GET['otdel'] == 5) {
            $typeOtdel = 22;
        } elseif ((int)$_GET['otdel'] == 6) {
            $typeOtdel = 15;
        } elseif ((int)$_GET['otdel'] == 7) {
            $typeOtdel = 12;
        } elseif ((int)$_GET['otdel'] == 8) {
            $typeOtdel = 4;
        } elseif ((int)$_GET['otdel'] == 28) {
            $typeOtdel = 7;
        } elseif ((int)$_GET['otdel'] == 9) {
            $typeOtdel = 5;
        } elseif ((int)$_GET['otdel'] == 10) {
            $typeOtdel = 6;
        } elseif ((int)$_GET['otdel'] == 11) {
            $typeOtdel = 1;
        } elseif ((int)$_GET['otdel'] == 12) {
            $typeOtdel = 3;
        } elseif ((int)$_GET['otdel'] == 13) {
            $typeOtdel = 8;
        } elseif ((int)$_GET['otdel'] == 14) {
            $typeOtdel = 14;
        } elseif ((int)$_GET['otdel'] == 15) {
            $typeOtdel = 13;
        } elseif ((int)$_GET['otdel'] == 16) {
            $typeOtdel = 9;
        } elseif ((int)$_GET['otdel'] == 17) {
            $typeOtdel = 10;
        } elseif ((int)$_GET['otdel'] == 18) {
            $typeOtdel = 11;
        } elseif ((int)$_GET['otdel'] == 19) {
            $typeOtdel = 29;
        } elseif ((int)$_GET['otdel'] == 20) {
            $typeOtdel = 30;
        } elseif ((int)$_GET['otdel'] == 50) {
            $typeOtdel = 29;
        } elseif ((int)$_GET['otdel'] == 55) {
            $typeOtdel = 29;
        } elseif ((int)$_GET['otdel'] == 56) {
            $typeOtdel = 29;
        } elseif ((int)$_GET['otdel'] == 51) {
            $typeOtdel = 31;
        } elseif ((int)$_GET['otdel'] == 57) {
            $typeOtdel = 31;
        } elseif ((int)$_GET['otdel'] == 58) {
            $typeOtdel = 31;
        } elseif ((int)$_GET['otdel'] == 59) {
            $typeOtdel = 31;
        } elseif ((int)$_GET['otdel'] == 60) {
            $typeOtdel = 62;
        } elseif ((int)$_GET['otdel'] == 61) {
            $typeOtdel = 62;
        } elseif ((int)$_GET['otdel'] == 62) {
            $typeOtdel = 62;
        } elseif ((int)$_GET['otdel'] == 52) {
            $typeOtdel = 62;
        } elseif ((int)$_GET['otdel'] == 21) {
            $typeOtdel = 45;
        } elseif ((int)$_GET['otdel'] == 36) {
            $typeOtdel = 30;
        } elseif ((int)$_GET['otdel'] == 37) {
            $typeOtdel = 29;
        } elseif ((int)$_GET['otdel'] == 1050) {
            $typeOtdel = 1050;
        } else {
            $typeOtdel = 18;
        }


Я с таким даже не пытаюсь разбираться, легче удалить и написать с нуля
 

Bayer

Специалист
⚖️
🏆
📜
Сообщения
761
Реакции
257
меня другое веселит, вот эта дичь:
PHP:
$cl = mysqli_query($GLOBALS['db'], 'SELECT
`items_users`.`id` as id, `items_users`.`id` AS `idu`,`items_users`.`item_id` as item_id,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,
`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,
`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,
`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,
`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id` as item_id,`items_main`.`name`,
`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,
`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,
`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,
`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,
`items_main`.`lvl_aexp` , count(`items_users`.`id`) as inGroupCount
FROM `items_users`
LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`)
LEFT JOIN `items_shop` ON (`items_shop`.`item_id` = `items_main`.`id`)
WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp()  OR `items_main`.srok = "0")
AND `items_users`.`delete`="0"
AND `items_users`.`item_id` = "' . (int)$_GET['itemid'] . '"
AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` != "18" AND `items_main`.`type` != "19" AND `items_main`.`type` != "20" AND `items_main`.`type` != "21" AND `items_main`.`type` != "22" AND `items_main`.`type` != "15" AND `items_main`.`type` != "12" AND `items_main`.`type` != "4" AND `items_main`.`type` != "5" AND `items_main`.`type` != "6" AND `items_main`.`type` != "1" AND `items_main`.`type` != "3" AND `items_main`.`type` != "8" AND `items_main`.`type` != "14" AND `items_main`.`type` != "13" AND `items_main`.`type` != "9" AND `items_main`.`type` != "10" AND `items_main`.`type` != "11" AND `items_main`.`type` != "29" AND `items_main`.`type` != "30"
GROUP BY `items_users`.`inGroup`, `items_users`.`uid`,`items_users`.`1price` HAVING `items_users`.inGroup > 0
UNION ALL
SELECT `items_users`.`id` as id, `items_users`.`id` AS `idu`,`items_users`.`item_id` as item_id,`items_users`.`1price`,`items_users`.`2price`,`items_users`.`uid`,`items_users`.`use_text`,
`items_users`.`data`,`items_users`.`inOdet`,`items_users`.`inShop`,`items_users`.`delete`,`items_users`.`iznosNOW`,`items_users`.`iznosMAX`,
`items_users`.`gift`,`items_users`.`gtxt1`,`items_users`.`gtxt2`,`items_users`.`kolvo`,`items_users`.`geniration`,`items_users`.`magic_inc`,`items_users`.`maidin`,
`items_users`.`lastUPD`,`items_users`.`timeOver`,`items_users`.`overType`,`items_users`.`secret_id`,`items_users`.`time_create`,`items_users`.`inGroup`,`items_users`.`dn_delete`,
`items_users`.`inTransfer`,`items_users`.`post_delivery`,`items_users`.`lbtl_`,`items_users`.`bexp`,`items_users`.`so`,`items_users`.`blvl`,`items_main`.`id` as item_id,`items_main`.`name`,
`items_main`.`img`,`items_main`.`type`,`items_main`.`inslot`,`items_main`.`2h`,`items_main`.`2too`,`items_main`.`iznosMAXi`,`items_main`.`inRazdel`,`items_main`.`price1`,
`items_main`.`price2`,`items_main`.`magic_chance`,`items_main`.`info`,`items_main`.`massa`,`items_main`.`level`,`items_main`.`magic_inci`,`items_main`.`overTypei`,
`items_main`.`group`,`items_main`.`group_max`,`items_main`.`geni`,`items_main`.`ts`,`items_main`.`srok`,`items_main`.`class`,`items_main`.`class_point`,`items_main`.`anti_class`,
`items_main`.`anti_class_point`,`items_main`.`max_text`,`items_main`.`useInBattle`,`items_main`.`lbtl`,`items_main`.`lvl_itm`,`items_main`.`lvl_exp`,
`items_main`.`lvl_aexp`, count(`items_users`.`id`) as inGroupCount
FROM  `items_users` LEFT JOIN `items_main` ON (`items_main`.`id` = `items_users`.`item_id`)
WHERE (( `items_users`.time_create + `items_main`.srok) > unix_timestamp()  OR `items_main`.srok = "0") AND `items_users`.`delete`="0"  AND `items_users`.`item_id` = "' . (int)$_GET['itemid'] . '"
AND `items_users`.`inOdet`="0" AND `items_users`.`inShop`="30" and `items_main`.`type` != "18" AND `items_main`.`type` != "19" AND `items_main`.`type` != "20" AND `items_main`.`type` != "21" AND `items_main`.`type` != "22" AND `items_main`.`type` != "15" AND `items_main`.`type` != "12" AND `items_main`.`type` != "4" AND `items_main`.`type` != "5" AND `items_main`.`type` != "6" AND `items_main`.`type` != "1" AND `items_main`.`type` != "3" AND `items_main`.`type` != "8" AND `items_main`.`type` != "14" AND `items_main`.`type` != "13" AND `items_main`.`type` != "9" AND `items_main`.`type` != "10" AND `items_main`.`type` != "11" AND `items_main`.`type` != "29" AND `items_main`.`type` != "30"
GROUP BY `items_users`.`uid`,`items_users`.`1price` HAVING `items_users`.inGroup = 0
ORDER BY `1price` ASC , `inGroupCount` DESC');

Да, это знакомая многим комиссионка..... Чем нужно было думать разрабу, что бы такую дичь накалякать....

И продолжение кунст камеры:
PHP:
if ((int)$_GET['otdel'] == 1) {
            $typeOtdel = 18;
        } elseif ((int)$_GET['otdel'] == 2) {
            $typeOtdel = 19;
        } elseif ((int)$_GET['otdel'] == 3) {
            $typeOtdel = 20;
        } elseif ((int)$_GET['otdel'] == 4) {
            $typeOtdel = 21;
        } elseif ((int)$_GET['otdel'] == 5) {
            $typeOtdel = 22;
        } elseif ((int)$_GET['otdel'] == 6) {
            $typeOtdel = 15;
        } elseif ((int)$_GET['otdel'] == 7) {
            $typeOtdel = 12;
        } elseif ((int)$_GET['otdel'] == 8) {
            $typeOtdel = 4;
        } elseif ((int)$_GET['otdel'] == 28) {
            $typeOtdel = 7;
        } elseif ((int)$_GET['otdel'] == 9) {
            $typeOtdel = 5;
        } elseif ((int)$_GET['otdel'] == 10) {
            $typeOtdel = 6;
        } elseif ((int)$_GET['otdel'] == 11) {
            $typeOtdel = 1;
        } elseif ((int)$_GET['otdel'] == 12) {
            $typeOtdel = 3;
        } elseif ((int)$_GET['otdel'] == 13) {
            $typeOtdel = 8;
        } elseif ((int)$_GET['otdel'] == 14) {
            $typeOtdel = 14;
        } elseif ((int)$_GET['otdel'] == 15) {
            $typeOtdel = 13;
        } elseif ((int)$_GET['otdel'] == 16) {
            $typeOtdel = 9;
        } elseif ((int)$_GET['otdel'] == 17) {
            $typeOtdel = 10;
        } elseif ((int)$_GET['otdel'] == 18) {
            $typeOtdel = 11;
        } elseif ((int)$_GET['otdel'] == 19) {
            $typeOtdel = 29;
        } elseif ((int)$_GET['otdel'] == 20) {
            $typeOtdel = 30;
        } elseif ((int)$_GET['otdel'] == 50) {
            $typeOtdel = 29;
        } elseif ((int)$_GET['otdel'] == 55) {
            $typeOtdel = 29;
        } elseif ((int)$_GET['otdel'] == 56) {
            $typeOtdel = 29;
        } elseif ((int)$_GET['otdel'] == 51) {
            $typeOtdel = 31;
        } elseif ((int)$_GET['otdel'] == 57) {
            $typeOtdel = 31;
        } elseif ((int)$_GET['otdel'] == 58) {
            $typeOtdel = 31;
        } elseif ((int)$_GET['otdel'] == 59) {
            $typeOtdel = 31;
        } elseif ((int)$_GET['otdel'] == 60) {
            $typeOtdel = 62;
        } elseif ((int)$_GET['otdel'] == 61) {
            $typeOtdel = 62;
        } elseif ((int)$_GET['otdel'] == 62) {
            $typeOtdel = 62;
        } elseif ((int)$_GET['otdel'] == 52) {
            $typeOtdel = 62;
        } elseif ((int)$_GET['otdel'] == 21) {
            $typeOtdel = 45;
        } elseif ((int)$_GET['otdel'] == 36) {
            $typeOtdel = 30;
        } elseif ((int)$_GET['otdel'] == 37) {
            $typeOtdel = 29;
        } elseif ((int)$_GET['otdel'] == 1050) {
            $typeOtdel = 1050;
        } else {
            $typeOtdel = 18;
        }


Я с таким даже не пытаюсь разбираться, легче удалить и написать с нуля
Сверху прям страшная штука, слишком много букав.

А вот эти $typeOtdel я понятия не имею почему оно отличается от $_GET['otdel'] начнем с этого, но если это очень важно и принципиально, то можно же хотя бы is_array какой нибудь сделать где одинаковые $typeOtdel = array из (int)$_GET['otdel'].
Ну вот эти 60 - 62 = 62 $typeOtdel - почему бы ни того этого
 

Insallah

¯\_(ツ)_/¯
🏆
📜
Сообщения
1,564
Реакции
491
С продолжением кунсткамеры там есть какой-то организационный косяк чтобы так делать. Помню, я себе с какой-то целью примерно до такой же самой конструкции дошёл. Когда переменная зависит от входящего значения, но не равна ему — сильно не попляшешь.
Разве что в базу ключ-значение забрасывать и вызывать потом. Но стоит ли оно того?
 
Сверху