Форум программистов, компьютерный форум CyberForum.ru
CyberForum.ru - форум программистов и сисадминов > > >
Восстановить пароль Регистрация
 
Micro
Форумчанин
41 / 41 / 6
Регистрация: 12.11.2011
Сообщений: 384
28.02.2012, 18:54     Как проверить таблицу на наличие записи   #1
Делаю отдельную регистрацию, подскажите как проверять не занят ли логин другим человеком с учетом регистра...
Лучшие ответы (1)
AdAgent
Объявления
28.02.2012, 18:54    Как проверить таблицу на наличие записи
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2012, 18:54    Как проверить таблицу на наличие записи

Посмотрите здесь:

MySQL Как очистить таблицу?

MySQL Как дамп записать в таблицу

MySQL добавление записи в таблицу при работе процедуры mysql

MySQL Как очищать таблицу?

MySQL Как сделать таблицу переносимой?

MySQL Почему ошибка при добавлении записи в таблицу?

MySQL Перенести записи в колонке в другую такую же таблицу, если записи ключей совпадают

MySQL Процедура, которая производит вставку записи в таблицу имеющую автоинкрементное поле

MySQL можно ли не проверять на наличие записи в базе перед добавлением?

MySQL Внешние ключи Cascade: При записи в таблицу тикетс — все записывается, а при записи в hub - ошибка

paa66
Форумчанин
21 / 22 / 0
Регистрация: 12.12.2011
Сообщений: 197
29.02.2012, 11:47     Как проверить таблицу на наличие записи   #2
С помощью SQL это не сделать, поэтому не в том разделе создал тему. Но объясню, как сделал бы я. Итак, есть поле формы, куда посетитель внёс свой логин. При нажатии Регистрация надо создать переменную и присвоить ей значение этого поля:
Код PHP
1
$login1 = название_поля
Потом делаешь запрос к БД и выдёргиваешь все логины:
Код PHP
1
2
3
4
5
6
7
8
9
10
$sql = "SELECT login FROM users ";// создаёшь запрос в виде переменной, т.е. выдёргиваешь все логины из таблицы БД
$db->setQuery($sql);// это делаешь запрос к БД
     $row = $db->loadAssocList();//загружаешь результат запроса в массив
foreach($row as $login){
if {$login == $login1; 
echo "этот логин уже занят другим пользователем";
}
else { // тут твой код
}
}
Примерно так.
perepe4a
Форумчанин
32 / 64 / 2
Регистрация: 03.02.2012
Сообщений: 362
01.03.2012, 21:32     Как проверить таблицу на наличие записи   #3
Цитата Сообщение от paa66 Посмотреть сообщение
С помощью SQL это не сделать.
Примерно так.
Ололошеньки. Какраз с помощью SQL это делать и НУЖНО!!!
Способ 1-й:
Код SQL
1
SELECT COUNT(login) FROM users WHERE login = :p_new_login
Если вернет 0, то понятно, что такого пользователя нет.

Способ 2-й:
Навесить ограничение уникальности на логин.
Код SQL
1
INSERT INTO users VALUES(id, :p_new_login)
Если есть то вернет exception.
Great-Antique
Форумчанин
63 / 63 / 1
Регистрация: 22.09.2010
Сообщений: 182
02.03.2012, 15:44     Как проверить таблицу на наличие записи   #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Код PHP
1
$sql = "SELECT EXISTS (SELECT * FROM `users` WHERE login = '{$login}')";
Вернет 1 если такой логин уже есть, 0 - если нету

Если будете напрямую ставиь результат в условие - то можно так
Код PHP
1
$sql = "SELECT NOT EXISTS (SELECT * FROM `users` WHERE login = '{$login}')";
Вернет 1 если логина такого еще нету, 0 - если есть

Добавлено через 1 минуту
Цитата Сообщение от paa66 Посмотреть сообщение
С помощью SQL это не сделать
Не вводите в заблуждение людей.
RobertMenus
Форумчанин
36 / 36 / 1
Регистрация: 08.12.2010
Сообщений: 207
22.04.2013, 20:58     Как проверить таблицу на наличие записи   #5
пардон за некропостинг, но проблема очень-очень из этой области. за
Цитата Сообщение от Great-Antique Посмотреть сообщение
$sql = "SELECT EXISTS (SELECT * FROM `users` WHERE login = '{$login}')";
огромное спасибо, но увы пишу я не на php, а на Делфи, используя MyDAC.
вопрос - куда "приходит" результат исполнения этого запроса?
Код Delphi
1
2
3
myqry1.Active:=False;
myqry1.SQL.Text:='SELECT EXISTS (SELECT * FROM tests where St_ID='+dblkcbbSt_ID.Text+')';
myqry1.Execute;
Great-Antique
Форумчанин
63 / 63 / 1
Регистрация: 22.09.2010
Сообщений: 182
23.04.2013, 09:39     Как проверить таблицу на наличие записи   #6
RobertMenus, никогда не имел дела с делфи. Может ктото подскажет
Micro
Форумчанин
41 / 41 / 6
Регистрация: 12.11.2011
Сообщений: 384
26.04.2013, 20:56  [ТС]     Как проверить таблицу на наличие записи   #7
Great-Antique, не нужно набивать посты.
RobertMenus, Там у myqry1 должно быть что-то типа ExecuteReader()
Код Visual Basic .NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   If con.State.ToString = "Open" Then
            Dim cmd2 As MySqlCommand = New MySqlCommand("SELECT userid FROM  " + TABLE_PREFIX + "user WHERE `username`='" & username & "'", con)
            Dim reader As MySqlDataReader = cmd2.ExecuteReader
            Dim a As Integer = 0
            Do While reader.Read
                a = reader.GetValue(0)
            Loop
            reader.Close()
            cmd2.Dispose()
            Return a
        Else
            con.Open()
        End If
        Return 0
Yandex
Объявления
26.04.2013, 20:56    Как проверить таблицу на наличие записи
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему
Опции темы

Текущее время: 17:49. Часовой пояс GMT +4.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.