Форум программистов и сисадминов CyberForum.ru
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум Форум программистов > Форум Базы данных > Форум MySQL
Восстановить пароль Регистрация

Ответ Создать новую тему
 
Старый 28.02.2012, 18:54   #1
Micro
Форумчанин
 
Регистрация: 12.11.2011
Сообщений: 369
Репутация: 41 (41)
Лучшие ответы: 6
Как проверить таблицу на наличие записи / MySQL

Делаю отдельную регистрацию, подскажите как проверять не занят ли логин другим человеком с учетом регистра...
Лучшие ответы (1)
Старый 29.02.2012, 11:47   #2
paa66
Форумчанин
 
Регистрация: 12.12.2011
Сообщений: 196
Репутация: 21 (22)
Как проверить таблицу на наличие записи

С помощью 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 { // тут твой код
}
}
Примерно так.
Другие темы раздела Форум разработчиков MySQL. Использование СУБД MySQL, создание баз данных, написание запросов.
MySQL сервер зависает при установке MySQL
Не получается установить MySQL сервер, на завершающем этапе зависает. С чем это может быть связано?
как сгруппировать данные MySQL
Делаю форум для школьного класса. При регистрации каждый из родителей (папа и мама) указывают ФИО своего ребёнка. Эта инфа заносится в таблицу users. В таблице выглядит следующим образом: для ФИО родителя - отдельное поле, а для телефона, адреса, фио ребёнка и т.д. - поле params. При выводе списка...
Старый 01.03.2012, 21:32   #3
perepe4a
Форумчанин
 
Регистрация: 03.02.2012
Сообщений: 362
Репутация: 32 (64)
Лучшие ответы: 2
Как проверить таблицу на наличие записи

Цитата Сообщение от 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.
Старый 02.03.2012, 15:44   #4
Great-Antique
Форумчанин
 
Аватар для Great-Antique
 
Регистрация: 22.09.2010
Сообщений: 182
Репутация: 63 (63)
Лучшие ответы: 1
Как проверить таблицу на наличие записи

Код 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 это не сделать
Не вводите в заблуждение людей.
Старый 02.03.2012, 15:44
Google
Объявления
Старый 22.04.2013, 20:58   #5
RobertMenus
Форумчанин
 
Аватар для RobertMenus
 
Регистрация: 08.12.2010
Сообщений: 207
Репутация: 36 (36)
Лучшие ответы: 1
Как проверить таблицу на наличие записи

пардон за некропостинг, но проблема очень-очень из этой области. за
Цитата Сообщение от 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;
Старый 23.04.2013, 09:39   #6
Great-Antique
Форумчанин
 
Аватар для Great-Antique
 
Регистрация: 22.09.2010
Сообщений: 182
Репутация: 63 (63)
Лучшие ответы: 1
Как проверить таблицу на наличие записи

RobertMenus, никогда не имел дела с делфи. Может ктото подскажет
Старый 26.04.2013, 20:56  [ТС]   #7
Micro
Форумчанин
 
Регистрация: 12.11.2011
Сообщений: 369
Репутация: 41 (41)
Лучшие ответы: 6
Как проверить таблицу на наличие записи / MySQL

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
Старый 26.04.2013, 20:56
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Автор
Visual Basic .NET Как проверить таблицу на наличие записи
Делаю отдельную регистрацию, подскажите как проверять не занят ли логин другим человеком с учетом регистра...
Micro
Visual Basic .NET Как проверить наличие записи в таблице БД MySql(по ID)
Всем доброго времени суток. Уважаемые программисты, у меня возник такой вопрос: Есть таблица в БД MySql в ней неопределенное количество записей(строк) Записи я периодически обновляю примерно так:'Dim cmd As New MySql.Data.MySqlClient.MySqlCommand ... cmd.CommandText = "UPDATE table ... WHERE...
Dzhej-Dzhej
Perl Как проверить наличие архива
Как проверить наличие архива в директории с помощью перла ?ОС - freeBsd.
kukich
C++ Как проверить наличие антивируса?
Каким образом можно запретить любой доступ к флешке всем прогам, кроме моей? Как проверить наличие антивируса? заранее благодарен.
_ShamaN_
Опции темы

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

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