Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Не могу разобраться с Mysql
Покинул форум
Сообщений всего: 11
Дата рег-ции: Окт. 2010
Помог: 0 раз(а)
Написал в базе
CREATE TABLE user (
id_user mediumint(9) auto_increment,
email char(50),
passw char(32),
status_user enum('y','n'),
PRIMARY KEY (id_user)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Пишу в php:
if (!isset($err_add)) {
if ($db = @mysql_connect(HOST_CONNECT, LOGIN_CONNECT, PASSW_CONNECT)) {
mysql_select_db(DB_CONNECT);
mysql_query("SET NAMES cp1251");
$q = "SELECT * FROM user WHERE email='$emails'";
$res_add = @mysql_query($q);
$count_add=mysql_num_rows($res_add);
if ($count_add==0) {
$pass=md5($pass);
$query_add = "INSERT INTO user VALUES ";
$query_add .= "('', '$emails', '$pass', 'y')";
if (@mysql_query($query_add)) {
session_start();
$_SESSION["sess_login"] = $emails;
$_SESSION["sess_pass"] = $pass;
$sess_data=date("U");
$_SESSION["sess_data"] = $sess_data;
header("location: add.php");
exit();
}
else {
$err_add .= "Попробуйте сделать запрос ";
$err_add .= "через некоторое время<BR>";
}
}
else {
$err_add .= "E-mail $emails уже зарегистрирован ";
$err_add .= "ранее!!!<BR>";
$err_add .= "Восстановить пароль можно заполнив форму ";
$err_add .= "ниже<BR>";
}
mysql_close($db);
}
else {
$err_add .= "Не удалось установить соединение с базой ";
$err_add .= "данных<BR>";
}
}
}
примерно так но в базе сохраняется если я в пробеле ставлю какуе то цифру
Мелкий
Отправлено: 27 Октября, 2010 - 15:48:54
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
phpfaq.ru/debug
anton_17 пишет:
но в базе сохраняется если я в пробеле ставлю какуе то цифру
Покинул форум
Сообщений всего: 11
Дата рег-ции: Окт. 2010
Помог: 0 раз(а)
Блин я же не специально
Мелкий
Отправлено: 27 Октября, 2010 - 16:05:20
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
anton_17 пишет:
Блин я же не специально
Не специально тему открыли? Или код как-то случайно написался и его вообще нету?
тут даже мой демон "пророк" не представляет, что вы хотели сказать... Поясните, а?
----- PostgreSQL DBA
Uchkuma
Отправлено: 27 Октября, 2010 - 16:53:31
Участник
Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010 Откуда: Киров
Помог: 6 раз(а)
anton_17, или опишите проблему, чтобы она была ясна другим участникам форума, или я удаляю эту тему.
anton_17
Отправлено: 28 Октября, 2010 - 10:27:12
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Окт. 2010
Помог: 0 раз(а)
Заранее прошу у всех прощение, вчера не слишком трезвый выложил, поэтому не смог нормально сформулировать вопрос я выделил часть кода с проблемой
if (isset($_POST['add'])) {
$emails=$_POST['emails'];
$pass=$_POST['pass'];
if (!eregi("^[a-z0-9_\.\-]+@([a-z0-9\-]+\.)+[a-z]{2,4}$", $emails)) {
$err_add="Недопустимый адрес E-mail !!!<BR>";
}
if (strlen($emails)>50) {
$err_add .= "Длина E-mail больше допустимой!!!<BR>";
}
if (strlen($pass)>16 || strlen($pass)<6) {
$err_add .= "Длина пароля должна быть в пределах ";
$err_add .= "от 6 до 16 символов.<BR>";
}
if (!eregi("^[a-z0-9_\.\-]{6,16}$", $pass)) {
$err_add .= "В пароле допустимы только буквы ";
$err_add .= "A-Z (a-z) или цифры 0-9<BR>";
}
if (!isset($err_add)) {
if ($db = @mysql_connect(HOST_CONNECT, LOGIN_CONNECT, PASSW_CONNECT)) {
mysql_select_db(DB_CONNECT);
mysql_query("SET NAMES cp1251");
$q = "SELECT * FROM user WHERE email='$emails'";
$res_add = @mysql_query($q);
$count_add=mysql_num_rows($res_add);
if ($count_add==0) {
$pass=md5($pass);
$query_add = "INSERT INTO user VALUES ";
$query_add .= "('2', '$emails', '$pass', 'y')";
if (@mysql_query($query_add)) {
session_start();
$_SESSION["sess_login"] = $emails;
$_SESSION["sess_pass"] = $pass;
$sess_data=date("U");
$_SESSION["sess_data"] = $sess_data;
header("location: add.php");
exit();
}
else {
$err_add .= "Попробуйте сделать запрос ";
$err_add .= "через некоторое время<BR>";
}
}
else {
$err_add .= "E-mail $emails уже зарегистрирован ";
$err_add .= "ранее!!!<BR>";
$err_add .= "Восстановить пароль можно заполнив форму ";
$err_add .= "ниже<BR>";
}
mysql_close($db);
}
else {
$err_add .= "Не удалось установить соединение с базой ";
$err_add .= "данных<BR>";
}
}
Если ставлю цифру то в базе добавляется запись, а если пишу:
$query_add .= "('', '$emails', '$pass', 'y')";
То в базе ни чего не добавляется, почему автозаполнение не работает. Ведь я прописал:
id_user mediumint(9) auto_increment
если опять не понятно написал вопрос, пожалуйста отпишите
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Всё равно phpfaq.ru/debug, а именно: "быстрые рекомендации" п.1 и п.2.
----- PostgreSQL DBA
biperch
Отправлено: 28 Октября, 2010 - 11:18:02
Частый посетитель
Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009 Откуда: Днепропетровск
Помог: 8 раз(а)
anton_17 пишет:
$query_add .= "('', '$emails', '$pass', 'y')";
Открой мне тайну, какой тип переменной (id_user mediumint(9) auto_increment).
Следовательно ты в числовую переменную пытаешься записать строку"" вместо числа, а учитывая что там автоинкремент напиши просто так:
#1366 - Incorrect integer value: '' for column 'id_rubr' at row 1
а если нумерую рубрики то все нормально именно так:
INSERT INTO rubr (id_rubr, name_rubr) VALUES
('1', 'Автомобили'),
('2', 'Безопасность'),
('3', 'Бытовая техника'),
ну и так далее, не могу понять в чем дело Прикреплено изображение (Нажмите для увеличения)
biperch
Отправлено: 28 Октября, 2010 - 11:31:40
Частый посетитель
Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009 Откуда: Днепропетровск
Помог: 8 раз(а)
anton_17 пишет:
#1366 - Incorrect integer value: '' for column 'id_rubr' at row 1
тут написано что вещественному типу поля id_rubr присваивают неправильное значение инкорект!!!!
Если поле автоинкремент и ты указываеш явно поля которые заполняеш то в поле с автоинкрементом вообще ненадо ничего писать (Добавление)
INSERT INTO rubr ( name_rubr) VALUES
('Автомобили'),
('Безопасность'),
('Бытовая техника'),
('Кулинария');
такой запрос будет работать
anton_17
Отправлено: 28 Октября, 2010 - 11:39:30
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Окт. 2010
Помог: 0 раз(а)
Огромное спасибо, все работает, блин вроде по книге делал странно, что автор не написал этого, а я два дня промучился, еще раз спасибо!!!
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.