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

    +149.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    <?php
    function is_admin($user) {
    	$q = mysql_query("SELECT COUNT(*) FROM `admin` WHERE `user` = '$user'");
    	if(mysql_num_rows($q) == 1) {
    		return true;
    	}else{
    		return false;
    	}
    }
    }

    Если кто непонял, COUNT() всегда возвращает 1 ячейку, я реально видел такой код =\

    Запостил: guest, 11 Февраля 2009

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

    • zerkms:
      кстати, бывают ситуации, когда запрос вида SELECT COUNT(*) ... не вернёт ни одной записи - выборка будет просто пустой :-)
      Ответить
    • izra_ru:
      zerkms, только при ошибке запроса. В остальных случаях вернет n, где n >= 0
      Ответить
    • zerkms:
      izra_ru
      неправда ваша :-)

      mysql> select count(*) from news_news where id = 666 group by id;
      Empty set (0.00 sec)
      Ответить
    • Javof:
      Я всегда проверяю количество записей после "SELECT", и не ебет XD
      Ответить
    • zerkms:
      Javof
      зачем? :-)
      Ответить
    • Pasha1st:
      zerkms:
      шутку оценил. но ты придираешься к словам. у тебя сначала group by, и только потом select(*).
      Ответить
    • eSASe:
      Да такая авторизация будет всегда пускать всех кому не лень, так как mysql_num_rows($q) по любому вернет одну запись с нулем (при неверной аутентификации). А сдесь явно проверяется не само значение, а количество записей вернувшихся в результате запроса.
      Ответить
    • Саня:
      ничего подобного, COUNT(*) в Мускле(а тут именно Мускуль) возвращает 0 при успешном выполнении запроса и если ничего не найдено.
      Ответить
    • Саня:
      хотя нет, пардон, я не дочитал код дальше. Сорри.
      Ответить

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