Проверка на уникальность регистрируемого пользователя.

Статус
В этой теме нельзя размещать новые ответы.

ruletka131

Новичок
Проверка на уникальность регистрируемого пользователя.

Здравствуйте. У меня регистрируется новый пользователь. Его данные заносятся в базу данных MySQL. Как проверить его логин/пароль на уникальность. (Запрос $query = "SELECT user_login FROM $table_name WHERE user_login = '$logged_login' ") всегда выдает истину, т.е. находится пользователь с таким логином, хотя таблица пуста. В чем проблема?
 

Апокалипсис

тех дир matras.ru
Делай так:
SELECT count(*) FROM table where user_login='$login'
Возвращает кол-во найденных записей если совпадает логин.
Если ничего не найдено возвращает 0

-~{}~ 05.12.07 16:13:

и как идёт проверка после запроса? покажи кусок кода
 

IIIEPJIOK

Новичок
тыкаю пальцем в небо....
Автор оригинала: Руководство по PHP
Значение не равное FALSE говорит о том, что запрос был выполнен успешно. Он не говорит о количестве затронутых или возвращённых рядов. Вполне возможна ситуация, когда успешный запрос не затронет ни одного ряда.
 

ruletka131

Новичок
2Апокалипсис - все равно не работает.
PHP:
		  <?php
		  	$date_register = date ("H:i:s, l, d - m - Y");
			$link = mysql_connect("localhost", "root", "");
			$table_name = "logged_clients";
			$query = "SELECT count(*) FROM $table_name WHERE  user_login = \"$logged_login\"";  
			$result = mysql_db_query("goldDB", $query, $link);
			if ($result)
			{
				print ("Пользователь с таким именем существует. Пожалуйста вернитесь назад и измените login");
			}
			else 
			{
				$query = "INSERT INTO $table_name 
				VALUES (\"0\", \"$date_register\", \"$logged_login\", \"$logged_pass\", 
				\"$logged_email\", \"$logged_name\")";
				$result = mysql_db_query("goldDB", $query, $link);
				$link_close = mysql_close ($link);
				if ($result)
				{
					print ("Данные  записаны");
				}
				else
				{
					print ("Данные не записаны");
				}
			}
		  ?>
 

ruletka131

Новичок
Поменял mysql_db_query на mysql_select_db() м mysql_query() - все равно не работает.
Я понимаю, что вы злитесь, но прошу помощи...
 

Фанат

oncle terrible
Команда форума
ruletka131
тебе велели не менять.
а внимательно читать описание этих функций.
что они делают и что возвращают
 

ruletka131

Новичок
Я вас понял. Это функции лишь выполнили запрос, поэтому вернули истину. Как теперь вернуть количество найденных строк или не найденных?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Как теперь вернуть количество найденных
мей-би посмотреть в мануале?
[m]mysql[/m] ?

-~{}~ 05.12.07 17:04:

PHP FAQ: Хочу изучать PHP и Mysql. С чего начать?

-~{}~ 05.12.07 17:05:

IIIEPJIOK
Молодец
теперь все сведется к
Поменял mysql_db_query на mysql_select_db() м mysql_query()
+
Сам он не научился ни грама
 

IIIEPJIOK

Новичок
Mr_Max
да, ну брось, все нормально будет, еще и всех тут начнет пхп учить :)
 

ruletka131

Новичок
Вот так вот я исправил. Но mysql_num_rows($query_done) всегда возвращает единицу.
PHP:
		  	$date_register = date ("H:i:s, l, d - m - Y");
			$link = mysql_connect("localhost", "root", "");
			mysql_select_db ("goldDB", $link);
			$table_name = "logged_clients";
			$query = "SELECT count(*) FROM $table_name WHERE  user_login = \"$logged_login\"";  
			$query_done = mysql_query($query, $link);
			$result = mysql_num_rows($query_done);
			print "$result <br>";
			if ($result > 0)
			{
				print ("Пользователь с таким именем существует. Пожалуйста вернитесь назад и измените login");
			}
			else 
			{
				$query = "INSERT INTO $table_name 
				VALUES (\"0\", \"$date_register\", \"$logged_login\", \"$logged_pass\", 
				\"$logged_email\", \"$logged_name\")";
				$result = mysql_db_query("goldDB", $query, $link);
				$link_close = mysql_close ($link);
				if ($result)
				{
					print ("Данные  записаны");
				}
				else
				{
					print ("Данные не записаны");
				}
			}
		  ?>
 

Фанат

oncle terrible
Команда форума
так. тему закрываю.
а то человек совсем головой думать разучится.

ruletka131, давай-ка ты самостоятельно мозги включишь.
и подумаешь - что у тебя делает твой код. что функции и запросы возвращают. и как проверить.
задача несложная. все данные у тебя есть.
а слушать никого не надо. делай самостоятельно.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху