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

    +160.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function UserIsFriends($u1,$u2)
    {
        $db=new DB();   
        $db->query("SELECT `status` FROM `friends` where `status`='friends' 
        AND (`first`='".$u1."' or `second`='".$u1."') 
        AND (`first`='".$u2."' or `second`='".$u2."')");
        if ($db->num_rows()!=0)$row=$db->next_record();
        if ($row["status"]=="friends") return true; else return false;
    }

    Функция проверки дружбы между двумя людьми... ***дец

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

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

    • vkontakte?
      Ответить
    • select count(*) много бы изменил
      Ответить
      • тут даже не в этом дело :)
        getrix лень логиниться
        Ответить
        • Ну то что структура база неправильная? Дружба не вынесена в отдельную таблицу
          Ответить
          • Вынесена.
            Намекаю.
            where `status`='friends' И if ($row["status"]=="friends")
            Ответить
        • Раз приходиться писать всякие AND (`first`='".$u1."' or `second`='".$u1."')
          AND (`first`='".$u2."' or `second`='".$u2."')");
          Ответить
    • SELECT count(1) FROM `friends` WHERE `status`='friends' AND
      ( (`first`='".$u1."' or `second`='".$u2."') OR (`first`='".$u2."' or `second`='".$u1."') )
      немного читабельней.
      ну еще можно экранирование поставить, но это ладно.
      Ответить
      • ну экранирование впизду т.к. функции отдается уже обезапасенная строка. я про то,что where `status`='friends' И if ($row["status"]=="friends")
        Ответить
    • По-моему в условие закралась ошибка и не одна.
      Ответить
      • где??
        Ответить
        • Прошу прощения, под конец рабочего дня помутился разум и усмотрел ошибку. Условие в любом случае вымученное. А проверка if ($row["status"]=="friends") какой-то бред исключительный.
          Ответить

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