Как Нормально Пользоваться Mysql?

Тема в разделе "PHP программирование", создана пользователем BlackShadow, 27 май 2012.

  1. BlackShadow

    BlackShadow Well-Known Member

    Регистрация:
    4 фев 2011
    Сообщения:
    111
    Симпатии:
    1
    Народ. Вот уже пользуюсь мускулом, создаю, редактирую и прочее... Но у меня такое чувство, что что-то делаю не так.

    Вот допустим, я создал базу данных с таблицей, где есть ID, логин и пароль пользователя. Когда он регистрируется, то я добавляю новую запись. Но вот такой момент. Если ник ВДРУГ повторяется, то мне нужно создать цикл for, в котором я буду проверять, совпало или нет, правильно? или есть какие-то другие способы сравнения введенных данных с базой?

    Или вот второй момент - авторизация. Мне ОПЯТЬ нужно сделать for по всем записям в базе, чтобы проверить наличие такого пользоваеля?

    Объясните нубику, пожалуйста...
     
  2. -master-

    -master- Well-Known Member

    Регистрация:
    14 янв 2012
    Сообщения:
    629
    Симпатии:
    18
    Изучайте SQL.
     
  3. Bugnet

    Bugnet Гость

    Зачем for ? Делайте запрос в базу данных только по логину и извлекайте, например, id, если id не пустой - значит: запрос прошёл, т.е. в базе данных есть уже такой пользователь.
    $q = mysql_query("SELECT id FROM users WHERE login='$login'");
    Если пусто (empty), то разрешайте регистрацию нового пользователя.
    Можно реализовать запрос сразу после того как пользователь покинул поле логина и начал вводить пароль- это если дружите с jQuery(JS)-Ajax. Всё будет выглядеть как на этой странице (введите логин Status)
     
  4. BlackShadow

    BlackShadow Well-Known Member

    Регистрация:
    4 фев 2011
    Сообщения:
    111
    Симпатии:
    1
    Я не понял, как пользоваться...

    Код (PHP):
    $DBS = mysql_connect("localhost","ALEXANDR","endo1992");
    if ($DBS){
    echo "Соединил с БД<br>";

    mysql_select_db("triplekill",$DBS);
    $check = mysql_query("SELECT id FROM users WHERE log='$log'");
    echo $check;

    // Здесь он мне выдает результат Resourse id #5, хотя я не знаю, что это. Мне просто нужно проверить - занят логин или нет.

    mysql_close($DBS);

    } else {
    echo "Не удалось соединиться<br>";
    }
     
  5. rampa

    rampa Гость

    Шестая строка, и немного далее:

    Код (PHP):
    $check = mysql_query("SELECT id FROM users WHERE log='$log'");
    if( mysql_num_rows($check) == 0 ) {
    // Логин не занят. Запрос к БД вернул ноль строк, т.е. нет такого id где log='проверяемый логин'
    } else {
    // Логин занят. Запрос вернул одну, либо, не дай бог более одной строк с результатом
    }
    Функция mysql_query() возвращает Resourse id, но не строку, не true/false, не число или массив, вроде так, может кто-то поправит меня. Затем это Resourse id используется в функциях: mysql_num_rows, mysql_fetch_array и пр., это просто php api которое парсит вывод mysql сервера
     
Загрузка...

Поделиться этой страницей