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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $result = $db->query("SELECT w.wine_name as wine_name,(SELECT wine_type FROM wine_type WHERE wine_id_type = w.wine_type) as wine_type,
    	                             (SELECT variety FROM grape_variety WHERE variety_id = (SELECT variety_id FROM wine_variety WHERE wine_id = w.wine_id)) AS wine_variety,
    								 w.year as wine_year, (SELECT winery_name FROM winery WHERE winery_id = w.winery_id) as winery,
    								 (SELECT region_name FROM region WHERE region_id = (SELECT region_id FROM winery WHERE winery_id = w.winery_id)) as winery_region,
    								 (SELECT cost FROM inventory WHERE wine_id = w.wine_id) as wine_cost,
    								 (SELECT on_hand FROM inventory WHERE wine_id = w.wine_id) as wine_quantity
    	                      FROM wine w
    						  WHERE w.wine_id = '$id'");

    достаём данные из базы для страницы редактирования ...

    denis90, 23 Августа 2011

    Комментарии (10)
  2. PHP / Говнокод #7620

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    // ����� �������� � �������
        if (!function_exists('indexOf')) {
            function indexOf($needle, $haystack) {
                for($i = 0; $i < count($haystack); $i++) {
                    if ($haystack[$i] == $needle) {
                        return true;
                    }
                }
                return false;
            }
        }

    По просьбе трудящихся... (#7616)
    Кто угадает, что это за функция?
    Ответ: это велосипедная конструкция-заменитель in_array

    xStream, 23 Августа 2011

    Комментарии (16)
  3. PHP / Говнокод #7617

    +156

    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
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    <?php
    	include_once "database.php";
    	
    	$db = NewPDO();
    	$search = $db->prepare("SELECT w.wine_name as wine_name, w.year as wine_year, gv.variety as wine_variety, wn.winery_name as winery_name,r.region_name as region_name
    							FROM wine w
    							JOIN wine_variety wv ON w.wine_id = wv.wine_id
    							JOIN grape_variety gv ON wv.variety_id = gv.variety_id
    							JOIN winery wn ON w.winery_id = wn.winery_id JOIN region r ON wn.region_id = r.region_id
    							WHERE w.wine_name LIKE :in_wine_name AND wn.winery_name LIKE :in_winery_name AND r.region_name LIKE :in_region_name
    							ORDER BY w.wine_name ASC , w.year ASC , gv.variety ASC");
    	$wine_name = '%'.htmlspecialchars($_GET["wine"]).'%';
    	$winery_name = '%'.htmlspecialchars($_GET["winery"]).'%';
    	$region = '%'.htmlspecialchars($_GET["region"]).'%';
    	
    	$search->bindValue(':in_wine_name',$wine_name,PDO::PARAM_STR);
    	$search->bindValue(':in_winery_name',$winery_name,PDO::PARAM_STR);
    	$search->bindValue(':in_region_name',$region,PDO::PARAM_STR);
    	
    	$search->execute();
    	echo "<table>";
    	if ($search->columnCount() > 0)
    	{
    		echo "<tr align=\"center\">
    				<th>
    					Wine
    				</th>
    				<th>
    					Year
    				</th>
    				<th>
    					Variety
    				</th>
    				<th>
    					Winery
    				</th>
    				<th>
    					Region
    				</th>
    			  </tr>";
    		while($row = $search->fetch())
    		{
    			echo "<tr align=\"left\">
    					<td width=\"80\">
    						".$row["wine_name"]."
    					</td>
    					<td width=\"50\">
    						".$row["wine_year"]."
    					</td>
    					<td width=\"90\">
    						".$row["wine_variety"]."
    					</td>
    					<td width=\"230\">
    						".$row["winery_name"]."
    					</td>
    					<td>
    						".$row["region_name"]."
    					</td>
    				  </tr>";
    		}
    		echo "<tr>
    			  	<td colspan=\"5\">
    					".$search->rowCount()." records found matching your criteria.
    				</td>
    		      </tr>";
    	}
    	else
    	{
    		echo "<tr><td>No records match your search criteria</td></tr>";
    	}
    	echo "</table>";
    ?>

    Вот такой вот полнотекстовый поиск с выводом результата

    denis90, 23 Августа 2011

    Комментарии (16)
  4. PHP / Говнокод #7616

    +170

    1. 1
    include($b2bcontext_path."modules/"."costyl".".php");

    Самое интересное - инклюд безусловный. Он просто есть. Костыль - он такой костыль...

    xStream, 22 Августа 2011

    Комментарии (25)
  5. PHP / Говнокод #7613

    +150

    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
    // don't show any errors to end user
    error_reporting(0);
    	
    // error handler function
    function my_error_handler($errno, $errstr, $errfile, $errline) {
    		
        $date = date('d/M/Y:H:i:s O');
    		
        // \r\n for cozy look on win machines
        $error_str = "{$date} | [error] #{$errno}: {$errfile}:{$errline} {$errstr} \r\n";
    		
        // *.txt for win machines
        error_log($error_str, 3, 'C:\AppServ\www\error_log.txt');
    		
        // don't execute php internal error handler
        return true;
    }
    
    set_error_handler('my_error_handler');
    	
    // throws error
    echo date();

    Рубрика: Советы от Говнокода.
    В связи с #7594. Fatal errors не ловит (пхп, хуле), но их и не нужно показывать пользователю, все остальные ошибки пишем в лог на сервер.
    Ошибка в логе выглядит так:
    21/Aug/2011:16:50:52 +0000 | [error] #2: C:\AppServ\www\4.php:22 date() expects at least 1 parameter, 0 given

    Yurik, 21 Августа 2011

    Комментарии (14)
  6. PHP / Говнокод #7608

    +169

    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
    case"register": // если do=register, выводим регистрацию
         if (isset($login) && isset($pass1) && isset($pass2)) {
           if (!empty($login) && !empty($pass1) && !empty($pass2)) {
               $users=get_serial('users');
               $reallogin=$login;
               $login=md5(strtolower($login));
               if (!$users[$login]) {
                   if (strlen($pass1)>=4) {
                       $pass1=md5($pass1);
                       $pass2=md5($pass2);
                       if ($pass1==$pass2) {
                           $users[$login]=array();
                           $users[$login]['login']=htmlspecialchars($reallogin);
                           $users[$login]['pass']=$pass1;
                             set_serial($users,'users');
                             $error="Вы успешно зарегистрированны";
                             header("Refresh:3;url=".$_SERVER['PHP_SELF']);
                       }else {
                           $error="Ошибка: Пароли не совпадают";
                       }
                   }else {
                       $error="Ошибка: Минимальная длина пароля 4 символа";
                   }
               } else {
                   $error="Ошибка: Такой пользователь уже существует";
               }
           }else {
             $error="Ошибка: Обязательные поля нужно заполнить";
           }
         }

    invision70, 21 Августа 2011

    Комментарии (19)
  7. PHP / Говнокод #7606

    +161

    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
    // mysql_affected_rows порядка 200 записей
    while ($row_ex=mysql_fetch_array($res_ex)){
       $e_arr[trim(strtoupper($row_ex[0]))] = $row_ex[1];
        $exc .= "(".preg_replace("/(\*|\+|\(|\))/","\\\\$0",$row_ex[0])."(\ |\,|\<|\n|\.)+)|";
    }
    
    if ($exc){
        preg_match_all("/(".$exc.")(?!<\/a>)/i",$Tour['info'],$maches);
         $mach=array_unique($maches[0]);
         unset($maches);
         foreach ($mach as $e_name){
           $last_c=substr($e_name,-1);
           if ($last_c=="<" || $last_c=="," || $last_c==".") $e_name = substr($e_name,0,-1);
           if ($e_name[trim(strtoupper($e_name))])
           $Tour['info'] = preg_replace("/$e_name(?!.?<\/a>)/","<a href='".$e_arr[trim(strtoupper($e_name))]."\.html'>".$e_name."<\/a>",$Tour['info']);
         }
    
        preg_match_all("/(".$exc.")(?!<\/a>)/i",$Tour['info1'],$maches);
         $mach=array_unique($maches[0]);
         unset($maches);
         foreach ($mach as $e_name){
           $last_c=substr($e_name,-1);
           if ($last_c=="<" || $last_c=="," || $last_c==".") $e_name = substr($e_name,0,-1);
    $e_arr[trim(strtoupper($e_name))]."\.html'>".$e_name."<\/a>",$Tour['info1']);
         }
    
        preg_match_all("/(".$exc.")(?!<\/a>)/i",$Tour['info2'],$maches);
         $mach=array_unique($maches[0]);
         unset($maches);
         foreach ($mach as $e_name){
           $last_c=substr($e_name,-1);
           if ($last_c=="<" || $last_c=="," || $last_c==".") $e_name = substr($e_name,0,-1);
    $e_arr[trim(strtoupper($e_name))]."\.html'>".$e_name."<\/a>",$Tour['info2']);
         }
    
        preg_match_all("/(".$exc.")(?!<\/a>)/i",$Tour['shedulle'],$maches);
         $mach=array_unique($maches[0]);
         unset($maches);
         foreach ($mach as $e_name){
           $last_c=substr($e_name,-1);
           if ($last_c=="<" || $last_c=="," || $last_c==".") $e_name = substr($e_name,0,-1);
         }
    
      }

    http://govnokod.ru/7602 "Регулярки? Да, слышал!"
    Итого + 8-10 секунд на исполнение.

    govnoacc, 21 Августа 2011

    Комментарии (1)
  8. PHP / Говнокод #7602

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function grabb($str, $start, $end) {
            $start = strpos($str, $start) + strlen($start);
            $end = strpos($str, $end, $start);
            $result = substr($str, $start, $end - $start);
            flush();
    return $result;
    }

    Человек, писавший это явно хоть раз произносил фразу "Регулярки ? Нет, не слышал."

    Marker689, 21 Августа 2011

    Комментарии (5)
  9. PHP / Говнокод #7597

    +155

    1. 1
    2. 2
    $hour = date('H'); if ($hour>23){$hour=$hour-24;$day++;}
    echo "".$hour.":"."$minute."";

    Без комментариев...

    Marker689, 20 Августа 2011

    Комментарии (15)
  10. PHP / Говнокод #7593

    +146

    1. 1
    $now = strtotime(date('Y-m-d'));

    Ну нахрена!?

    Веб-Система "Социальная сеть" версия 4.0
    /engine/modules/content/afisha/afisha.php on line 41

    XyHb, 20 Августа 2011

    Комментарии (4)