XylliGaH
8.04.2009 - 20:48
Ребята вот такая беда:
Делаю регистрацию на сайте, нужно было сделать так что б при вводе в поля логина, он сравнивался с логинами в бд, и если таковой имеется ---> вывожу строку что такой логин уже используется... так вот пошел я вот таким путем
Код |
/*объявления переменных */
10. $lbusy = mysql_query("SELECT login FROM users WHERE login = $login",$db); 11. $lrecord = mysql_fetch_array($lbusy); .... /*сама реализация*/
47. if (mysql_num_rows($lbusy) === 0) { $vvod = mysql_query ("INSERT INTO users (name,login,email,password) VALUES ('$name','$login','$email','$password')"); if ($vvod == true) {echo "<center><p>Ваша учетная запись успешно создана</p></center>";} else {echo "<center><p>Ошибка системы, попробуйте немного позже</p></center>";} } else {echo "<center><p>Извините, но такой логин уже кем-то используется</p></center>";}
|
так вот, когда логин чисельный, то оно ничего не выдает (ошибку), но когда же логин идет в символах идут вот такие ошибки
Код |
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in X:\home\mp3shka\www\reg.php on line 11 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in X:\home\mp3shka\www\reg.php on line 47
|
Дело в том, что оно правильно
работает, просто мне обяснили что когда я ввожу символы то оно возврщает в переменную NULL, можно ли мне как то запрятать эти ошибки, с конструкцией try...catch игрался, не помогло) если она мне и нужна опишите пожайлуста что и как делать(
Заранее спасибо
Спустя 4 минуты, 42 секунды (8.04.2009 - 19:53) Kuliev написал(а):
XylliGaH
PHP |
10. $lbusy = mysql_query("SELECT login FROM users WHERE login = '".$login."'",$db); 11. $lrecord = mysql_fetch_array($lbusy); .... /*сама реализация*/
47. if (mysql_num_rows($lbusy) =< 0) { $vvod = mysql_query ("INSERT INTO users (name,login,email,password) VALUES ('$name','$login','$email','$password')"); if ($vvod == true) {echo "<center><p>Ваша учетная запись успешно создана</p></center>";} else {echo "<center><p>Ошибка системы, попробуйте немного позже</p></center>";} } else {echo "<center><p>Извините, но такой логин уже кем-то используется</p></center>";} |
Спустя 2 минуты, 46 секунд (8.04.2009 - 19:56) XylliGaH написал(а):
Большое спасибо) все помогло)
премного благодарен
Спустя 6 минут, 53 секунды (8.04.2009 - 20:03) Kuliev написал(а):
XylliGaH
При сравнивании логических значений true или false используйте оператор === !
Не вижу смысла делать это условие
Все делается намного проще
PHP |
$lbusy = mysql_query("SELECT login FROM users WHERE login = '".$login."'",$db); $lrecord = mysql_fetch_array($lbusy); .... /*сама реализация*/
47. if (mysql_num_rows($lbusy) > 0) { echo "Такой логин уже занят!"; header ("location: index.php?err=error"); } else {
// Пишем в базу
} |
Спустя 2 часа, 56 минут, 38 секунд (8.04.2009 - 22:59) Joker написал(а):
Цитата (Kuliev @ 8.04.2009 - 17:03) |
XylliGaH При сравнивании логических значений true или false используйте оператор === !
|
а я думал что == (два ровно а не три)
Спустя 24 минуты, 19 секунд (8.04.2009 - 23:24) kirik написал(а):
Цитата (Joker @ 8.04.2009 - 14:59) |
а я думал что == (два ровно а не три) |
если два "равно", то тогда не идет сравнение типов данных, тоесть условие '1' == 1 будет истинно ('1' - string, 1 - int), а если поставишь еще одно "равно", то не будет (а будет в случае 1 === 1 1 - int, 1 - int)
Спустя 3 минуты (8.04.2009 - 23:27) Joker написал(а):