Форум программистов, компьютерный форум CyberForum.ru

MySQL

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 136, средняя оценка - 4.88
Micro
42 / 42 / 1
Регистрация: 12.11.2011
Сообщений: 428
#1

Как проверить таблицу на наличие записи - MySQL

28.02.2012, 18:54. Просмотров 17548. Ответов 6
Метки нет (Все метки)

Делаю отдельную регистрацию, подскажите как проверять не занят ли логин другим человеком с учетом регистра...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2012, 18:54     Как проверить таблицу на наличие записи
Посмотрите здесь:

MySQL Как очистить таблицу?
MySQL Добавление записи в таблицу при работе процедуры mysql
MySQL Почему ошибка при добавлении записи в таблицу?
Перенести записи в колонке в другую такую же таблицу, если записи ключей совпадают MySQL
Процедура, которая производит вставку записи в таблицу имеющую автоинкрементное поле MySQL
MySQL можно ли не проверять на наличие записи в базе перед добавлением?
MySQL Создать триггер на таблицу sdelka, который, при добавлении новой записи, добавит эту запись в другую
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
paa66
24 / 25 / 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
34 / 66 / 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
 Аватар для Great-Antique
65 / 65 / 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
 Аватар для RobertMenus
36 / 36 / 2
Регистрация: 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
 Аватар для Great-Antique
65 / 65 / 1
Регистрация: 22.09.2010
Сообщений: 182
23.04.2013, 09:39     Как проверить таблицу на наличие записи #6
RobertMenus, никогда не имел дела с делфи. Может ктото подскажет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2013, 20:56     Как проверить таблицу на наличие записи
Еще ссылки по теме:

MySQL Внешние ключи Cascade: При записи в таблицу тикетс — все записывается, а при записи в hub - ошибка
MySQL Скопировать в созданную таблицу записи сотрудников с окладом ниже среднего
Записать в таблицу, если таковой записи там нет MySQL
MySQL Триггер на изменение значения поля при добавлении записи в другую таблицу MySQL
MySQL Добавление записи в таблицу на основе существующей записи

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Micro
42 / 42 / 1
Регистрация: 12.11.2011
Сообщений: 428
26.04.2013, 20:56  [ТС]     Как проверить таблицу на наличие записи #7
Great-Antique, не нужно набивать посты.
RobertMenus, Там у myqry1 должно быть что-то типа ExecuteReader()
vb.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     Как проверить таблицу на наличие записи
Ответ Создать тему
Опции темы

Текущее время: 15:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru