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

    +157.3

    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
    <?php
    if (isset($_GET['cat'])) {$cat = $_GET['cat']; }
    if (!isset($cat)) {$cat = 1;}
    /* Проверяем, является ли переменная числом */
    if (!preg_match("|^[\d]+$|", $cat)) {
    exit ("<p>Неверный формат запроса! Проверьте URL!");
    }
    $result = mysql_query("SELECT * FROM wc_news_cat WHERE id='$cat'");
    if (!$result)
    {
    echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору<br> <strong>Код ошибки:</strong></p>";
    exit(mysql_error());
    }
    if (mysql_num_rows($result) > 0)
    {
    $myrow = mysql_fetch_array($result); 
    }
    else
    {
    echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
    exit();
    }
    
    /* Выводим новости */
    
    $result = mysql_query("SELECT id,cat,title,news,view,data,author FROM wc_news WHERE cat='$cat'");
    if (!$result)
    {
    echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору<br> <strong>Код ошибки:</strong></p>";
    exit(mysql_error());
    }
    if (mysql_num_rows($result) > 0)
    {
    $myrow = mysql_fetch_array($result); 
    }
    
    do 
    {
    
    
    printf ("<table align='center' class='news'>
             
    		 <tr>
             <td class='news_title'>
    		 <p class='news_name'><a href='news.php?id=%s'>%s</a></p>
    		 <p class='news_adds'>Дата добавления: %s</p>
    		 <p class='news_adds'>Автор урока: %s</p></td>
             </tr>
             
    		 <tr>
             <td>%s <p class='news_view'>Просмотров: %s </p></td>
             </tr>
             
    		 </table><br><br>",$myrow["id"],$myrow["title"],$myrow["author"],$myrow["news"], $myrow["view"]);
    }
    while ($myrow = mysql_fetch_array($result));
    
    else
    {
    echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
    exit();
    }
    
    
    ?>

    Запостил: Ildar, 22 Октября 2009

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

    • быдлокод
      ниасилил
      нисмешно
      Ответить
    • оригинальный подход =)
      !preg_match("|^[\d]+$|", $cat)

      кагбэ
      is_number($cat)
      Ответить
      • Исправлю :)
        Ответить
        • 1) не is_number(), а is_numeric()
          2) смысл? преобразуйте $_GET['cat'] в число intval() и работайте с нормальным целым

          p.s. хотя бы как-нибудь разделите логику и вывод данных, ну очень уж некрасиво выглядит код. что вы будете делать, если поменяется верстка?
          Ответить
    • Да уж... Копипаста никогда не умрет.
      И еще, в чем религиозный смысл юзать printf, когда можно воспользоваться обычной конкатенацией строк?
      Ответить
    • Тут почти каждую строку можно выводить в отдельную цитату. Особо порадовала гениальная конструкция шаблона вывода новости.
      Ответить
      • а меня всегда умиляли товарищи, ставящие (exit|die) при любой ошибке
        ну прям как в книжках по программированию!
        Ответить
    • Еще строку $result = mysql_query("SELECT id,cat,title,news,view,data,author FROM wc_news WHERE cat='$cat'");
      можно заменить на $result = mysql_query("SELECT * FROM wc_news WHERE cat='$cat'");
      запрос кстати выполнен будет быстрее
      Ответить
      • а я думал, что повсеместное применение * - плохой стиль.
        Ответить
    • кошмар какой-то
      аффтар не знал о ctype_digit()
      Ответить
    • Я писал этот код по уроку http://php-mysql-video.ru/
      Терь понел, что код ужасный, буду лучш на модх сайты делать.
      Ответить

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