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

MySQL

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

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

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

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

Перенести записи в колонке в другую такую же таблицу, если записи ключей совпадают - MySQL
Доброго времени суток. Есть 2 почти одинаковые таблицы, вторая отличается тем, что у него вообще нет записей в одной колонке. Как...

Добавление записи в таблицу на основе существующей записи - MySQL
Здравствуйте! PHP и MySQL только начинаю изучать и естественно не все получается. У меня есть таблица с пользователями USERS, в ней...

Можно ли не проверять на наличие записи в базе перед добавлением? - MySQL
у меня вопрос: есть скрипт, который при входящем запросе формирует запрос insert в базу вставляет данные (данные всегда уникальные) ...

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

Дата записи строки в таблицу - Базы данных
День добрый! Подскажите, пожалуйста, хранятся ли данные о времени записи данных в таблицу (дата записи строки), если да, то где, в каком...

Почему ошибка при добавлении записи в таблицу? - MySQL
Запрос: insert into partners set uid=12, partner_code='a2d9230c73', NULL, '1.00', '0' Таблица имеет вид:...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
paa66
25 / 26 / 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
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
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
65 / 65 / 1
Регистрация: 22.09.2010
Сообщений: 182
23.04.2013, 09:39 #6
RobertMenus, никогда не имел дела с делфи. Может ктото подскажет
Micro
42 / 42 / 1
Регистрация: 12.11.2011
Сообщений: 429
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2013, 20:56
Привет! Вот еще темы с ответами:

Записать в таблицу, если таковой записи там нет - MySQL
Есть два столба, "id" и "share", в обоих запись может повторяться, но не оба сразу, как записать в БД если нет совпавшей...

Добавление записи в таблицу при работе процедуры mysql - MySQL
Есть скрипт 1, вызывающая mysql процедуру, которая полностью меняет значения ячеек таблицы , удаляет, создает, переименовывывает столбцы....

Как проверить таблицу на наличие записи - Visual Basic .NET
Делаю отдельную регистрацию, подскажите как проверять не занят ли логин другим человеком с учетом регистра...

Проверить таблицу на наличие записи - Java БД
Добрый вечер вопрос в следующем необходимо проверить таблицу на наличие определенной записи login =...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.04.2013, 20:56
Ответ Создать тему
Опции темы

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