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

    +165

    1. 1
    $result = mysql_query("SELECT `id` FROM `cats` WHERE `id` = (SELECT `pid` FROM `tovary` WHERE `id` = '".$this->id."' LIMIT 1)");

    В один запрос получать id не кошерно.

    Было найдено в этом же проекте - http://www.govnokod.ru/2897

    Запостил: Rpsl, 02 Апреля 2010

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

    • Вероятно было ещё что-то, потом в ходе переработке кода просто подтерли.
      Ответить
      • Значит обращали внимание на эту строку и нормально поправить не удосужились.
        Ответить
    • SELECT c.id
      FROM cats c
      JOIN tovary t ON t.pid = c.id
      WHERE t.id='$this->id'
      Ответить
      • SELECT pid AS id
        FROM tovary
        WHERE id = $this->id
        Ответить
        • возможно из cats надо будет ещё что-то тянуть ))
          Ответить
          • бля, ну если придется, тогда и надо будет думать. "Если" - это не повод делать:

            functionname( $_GLOBAL ) ...
            Ответить
        • В cats может и не быть такой id
          Ответить
          • Ну, как бы я считаю, что это уже тонкости проектов. Кроме cats еще могут быть всякие brands и еще куча условий. Но это не повод делать каждый раз джоины таблиц по 100500 тысяч записей. Опять же, повторюсь, что все это относительно и зависит от проекта. Но часто бывает проще вернуть ошибку при отсутствие данных, чем напрягать базу.
            Ответить
    • бедные cats, чем эти коты так не угодили всем проектам :D
      Ответить
      • Котэ имеют большую популярность в IT.
        Ответить
    • зато мы после этого запроса точно будет знать, что есть категория с таким id и в ней есть товары
      Ответить

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