Помогите решить проблему...
SQL |
CREATE TABLE `users` ( `id` int( 8 ) unsigned NOT NULL AUTO_INCREMENT , `login` varchar( 50 ) NOT NULL default '', PRIMARY KEY ( `id` ) , UNIQUE KEY `login` ( `login` ) ) TYPE = MYISAM AUTO_INCREMENT =2 |
Вот код отправки в базу с php :
PHP |
if (isset($_POST['reg'])) { $regis = (isset($_POST['reg'])); $query = "INSERT INTO `users` SET `login` = '{$regis}'"; $sql = mysql_query($query) or die(mysql_error()); mysql_close($conn); print 'Регистрация прошла успешно' ; } |
При повторной регистрации пишет :
SQL |
Duplicate entry '1' for key 2 |
... И в базе (к примеру ввожу Логин Буквами .. показует цыфрой... вообщем зарегистрироваться моно 1 раз, и показует логин не Словом которым я вводил, а цыфрой "1"... В чем проблема, как её решить... Подскажите... Если можно то по сути, а не ссылку на учебник...
Спустя 11 минут, 34 секунды (8.10.2009 - 21:32) sergeiss написал(а):
$regis = (isset($_POST['reg'])); - вот проблема.
isset($_POST['reg']) возвращает true, если такая величина была передана, и
true при вставке в строку преобразуется в 1. Поэтому ты каждый раз пытаешься вставить 1 в логин. О чем тебе и говорится
Спустя 4 минуты, 7 секунд (8.10.2009 - 21:36) maZa написал(а):
Спасибо... Помогло...Убрал isset =)
Спустя 1 минута, 3 секунды (8.10.2009 - 21:37) SunSet написал(а):
PHP |
$regis = (isset($_POST['reg'])); |
чтото меня эта строка смущает..
Попробуй измени запрос на такой:
$res = mysql_query ("INSERT INTO `users` SET `login` = 'admin'") or die(mysql_error());
Спустя 49 секунд (8.10.2009 - 21:38) SunSet написал(а):
Какие вы шустрые..
Спустя 1 минута, 49 секунд (8.10.2009 - 21:40) sergeiss написал(а):
SunSet - вообще-то, я дал этот ответ за 5 минут до твоего...
Пункт II.6 Правил форума гласит "Если Вы знаете ответ на поставленный вопрос, убедитесь, что аналогичный ответ не был опубликован ранее."
Спустя 7 минут, 46 секунд (8.10.2009 - 21:48) SunSet написал(а):