Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
CyberForum.ru - форум программистов и сисадминов > > >
Восстановить пароль Регистрация

Ответ Создать новую тему
 
Micro
Форумчанин
41 / 41 / 6
Регистрация: 12.11.2011
Сообщений: 384
28.02.2012, 18:54     Как проверить таблицу на наличие записи
  #1
Делаю отдельную регистрацию, подскажите как проверять не занят ли логин другим человеком с учетом регистра...
Лучшие ответы (1)
AdAgent
Объявления
28.02.2012, 18:54
paa66
Форумчанин
21 / 22 / 0
Регистрация: 12.12.2011
Сообщений: 196
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
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
MS Access Как проверить наличие записи В ПОДЧИНЕННОЙ ФОРМЕ
привет всем ... Мне нужно по нажатию на кнопку "новая запись" , в форме "F_Работник" проверить наличие записи В подчиненной форме " F_Описание" и, если нет записей, выводить...
MS Access rvafexa 04.03.2014 09:22
MS Access Как проверить наличие записи В ПОДЧИНЕННОЙ ФОРМЕ
привет всем ... Как проверить наличие записи В ПОДЧИНЕННОЙ ФОРМЕ с помощью Recordset.EOF Мне нужно по нажатию на кнопку "новая запись" , в форме "F_Работник" проверить наличие записи В ...
MS Access rvafexa 04.03.2014 09:09
MySQL можно ли не проверять на наличие записи в базе перед добавлением?
у меня вопрос: есть скрипт, который при входящем запросе формирует запрос insert в базу вставляет данные (данные всегда уникальные) позже, схема изменилась, появились повторные запросы т.е. перед...
MySQL BoBka_altRUist 18.09.2013 19:03
MySQL Процедура, которая производит вставку записи в таблицу имеющую автоинкрементное поле
Нужно написать процедуру, которая производит вставку записи в таблицу имеющую автоинкрементное поле и затем возвращает значение этого автоинкрементного поля через внешний параметр. Напишите,...
MySQL mikhail90 14.08.2013 14:34
MySQL Перенести записи в колонке в другую такую же таблицу, если записи ключей совпадают
Доброго времени суток. Есть 2 почти одинаковые таблицы, вторая отличается тем, что у него вообще нет записей в одной колонке. Как можно перенести записи с колонки в другую такую же таблицу, при...
MySQL vendetta17 31.07.2013 02:48
MySQL Почему ошибка при добавлении записи в таблицу?
Запрос: insert into partners set uid=12, partner_code='a2d9230c73', NULL, '1.00', '0' Таблица имеет вид: # Поле Тип Сравнение Атрибуты Null По умолчанию Дополнительно Действие ...
MySQL picusus 15.01.2013 15:12
MySQL добавление записи в таблицу при работе процедуры mysql
Есть скрипт 1, вызывающая mysql процедуру, которая полностью меняет значения ячеек таблицы , удаляет, создает, переименовывывает столбцы. Результатом работы процедуры яв-ся обновленная таблица с...
MySQL dqrest 04.04.2012 12:16
Visual Basic .NET Как проверить таблицу на наличие записи
Делаю отдельную регистрацию, подскажите как проверять не занят ли логин другим человеком с учетом регистра...
Visual Basic .NET Micro 29.02.2012 12:48
Опции темы

Текущее время: 08:35. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.