1. PHP / Говнокод #5995

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    function price_filter_form()
    {
        // Хуярим неиибически сложную систему фильтрации по цене:
        $sql = "
    SELECT
    Max(c_good.price) AS `max`,
    Min(c_good.price) AS `min`,
    Count(c_good.price) AS `count`
    FROM
    c_good
    WHERE
    c_good.podcat_id =  '".mysql_real_escape_string($_GET['id'])."' AND
    c_good.onoff =  '1' AND c_good.`check` = '1'";
        $sql = mysql_query($sql) OR DIE (log_error('sql'));
        $price = mysql_fetch_assoc($sql);
        #echo ("<pre>");
        #print_r($price);
        #echo ("</pre>");
        if ($price['count'] < '10') // если товаров меньше 10, выводим 1 диапазон цен
        {
         $price_form = "<option value=\"".$price['min'].":".$price['max']."\">".$price['min']."-".$price['max']."руб.</option>";    
        }
        else
        {
            // Далее идёт непонятный говнокод, который к удивлению работает
            $step = (($price['max']-$price['min'])/11);
            $step = ceil($step);
            $step_len = strlen($step);
            $step = round($step, -($step_len-1));
            $first_step = ($price['min']+$step);
            $first_step_len = strlen($first_step);
            $first_step = (round($first_step, -($first_step_len-2))-1);
            #if ($first_step < $price['min']) $first_step = $price['min']+$step;
            $price_form = "<option value=\"".$price['min'].":".$first_step."\">".$price['min']."-".$first_step."руб.</option>";
            $price_form .= "<option value=\"".($first_step+1).":".($first_step+$step)."\">".($first_step+1)."-".($first_step+$step)."руб.</option>";
            
            #echo $step;
            for ($i=1;$i<8;$i++)
            {
             $price_form .= "<option value=\"".($first_step+($step*$i)+1).":".($first_step+($step*($i+1)))."\">
             ".($first_step+($step*$i)+1)."-".($first_step+($step*($i+1)))."руб.</option>";    
            }
            $price_form .= "<option value=\"".($first_step+($step*8)+1).":".$price['max']."\">
            ".($first_step+($step*8)+1)."-".$price['max']."руб.</option>";
        }
        $price_form = str_replace("\"".$defult_price['1']."\"", "\"".$defult_price['1']."\" selected", $price_form);
        return $price_form;
    }
    ?>

    вот с таким ГК пришлось столкнуться, после профилирования. Как Вам? Или - это нормально для PHP???
    P.S. комментарии сохранены авторские.

    Запостил: ZeiZ, 16 Марта 2011

    Комментарии (3) RSS

    • Приходилось тож чет подобное писать для подбора товаров, правда там не только цене можно было подбирать но и по выбранным спискам и прочей лобуде...
      Ответить
    • каша из кода, запросов и разметки - это так по PHP.....
      Ответить
    • для пхп -- нормалльно!
      Ответить

    Добавить комментарий