У меня две таблицы:
predpr
Свернутый текст
| id | adress | director | id_code | telephone |
users
Свернутый текст
| id | login | password |
Спустя 6 минут, 1 секунда (20.08.2009 - 14:39) ElfSam написал(а):
Собственно связь в этих таблицах 1 к 1 и можно было одну таблицу создать, но я захотел логин/пароль вынести в отдельную таблицу.
Первичный ключ в таблице predpr - это id, по нему будут связаны все таблицы в моей бд (пока созданы тока 2). Все поля в этих таблицах вводятся пользователем при регистрации, кроме этого id. Он AUTO_INCREMENT.
Проблема возникла когда я заношу в бд регистрационные данные
Первичный ключ в таблице predpr - это id, по нему будут связаны все таблицы в моей бд (пока созданы тока 2). Все поля в этих таблицах вводятся пользователем при регистрации, кроме этого id. Он AUTO_INCREMENT.
Проблема возникла когда я заношу в бд регистрационные данные
PHP |
//Добавляем данные в таблицу predpr |
Спустя 5 минут, 57 секунд (20.08.2009 - 14:45) ElfSam написал(а):
Тут сперва записываются личные данные пользователя в таблицу predpr. id автоматически принимает значение (допустим 1). Дальше я хоче занести логин/пароль в таблицу users. Логин и пароль указаны пользователем в форме регистрации, а проклятый id я пытаюсь прочитать из таблицы predpr, шоб его потом занести в users, но тут и выдается ошибка:
Warning: Wrong parameter count for mysql() in D:\Server\localhost\diplom\reg_action.php on line 51
SELECT `id` FROM `predpr` WHERE `id_code`='3086005512'
Подскажите, что я не так делаю
Warning: Wrong parameter count for mysql() in D:\Server\localhost\diplom\reg_action.php on line 51
SELECT `id` FROM `predpr` WHERE `id_code`='3086005512'

Подскажите, что я не так делаю
Спустя 21 минута, 10 секунд (20.08.2009 - 15:06) Michael написал(а):
Вон у тебя $result = mysql($str_sql) вместо $result = mysql_query($str_sql)
Также пиши вместо абзаца
//Получаем из таблицы predpr первичный ключ (id)
код:
Также пиши вместо абзаца
//Получаем из таблицы predpr первичный ключ (id)
код:
PHP |
$id=mysql_insert_id(); |
- возвращает значение предыдущей сработки авто инкремента
Спустя 23 минуты, 56 секунд (20.08.2009 - 15:30) REANIMATOR написал(а):
а ещё id_code это число обычно int, а ты ищешь string. Убери кавычки '3086005512'
и при добавлении тоже убери кавычки (там где '".$id."')
и при добавлении тоже убери кавычки (там где '".$id."')
PHP |
("INSERT INTO `users` (`id`, `login`, `password`)VALUES ('".$id."', '".$login."', |
Спустя 59 минут, 41 секунда (20.08.2009 - 16:30) ElfSam написал(а):
Вот оно:
PHP |
$id=mysql_insert_id(); |
Все заработало! Спасибо!
Спустя 20 минут, 14 секунд (20.08.2009 - 16:50) Gabriel написал(а):
PHP |
("INSERT INTO `users` (`id`, `login`, `password`)VALUES ('".$id."', '".$login."', '".$pass."')"); |
обьясните мне нубу зачем добавлять ид? когда он автоинкримент он добавляеться автоматом при создании новой записи.
или я чето пропустил?
Спустя 3 минуты, 40 секунд (20.08.2009 - 16:53) Michael написал(а):
Don Gabliel
автоинкримент у него только по первой таблице.

Спустя 6 минут, 32 секунды (20.08.2009 - 17:00) Gabriel написал(а):

Спустя 2 часа, 1 минута, 21 секунда (20.08.2009 - 19:01) Michael написал(а):
Цитата (Gabriel @ 20.08.2009 - 14:00) |
![]() |
Ну я например не уверен если из внешней программы удалять - добавлять - изменять записи в двух таблицах по очереди и аутоинкремент по обоим то счетчики на 100% будут согласованы.
Просто по правилам если данные зависят от одного же первичного ключа, то должны находиться в одной таблице. Но он так не захотел...
Спустя 14 часов, 53 минуты, 39 секунд (21.08.2009 - 09:55) ElfSam написал(а):
Помогите мне!
Вот sql-запрос
Вот sql-запрос
PHP |
$str_sql=(" REPLACE INTO `predpr` VALUES ('".$_SESSION['id']."', '".$adress."', '".$name."', '".$id_code."', '".$telephone."' "); |
Выдается ошибка:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
REPLACE INTO `predpr` VALUES ('6', '84635, Фруктовая 7/22', 'Самойлов Дмитрий', '3086005512', '---'
Что тут не так в синтаксисе? С командной строки такой запрос нормально выполняется
Спустя 1 час, 27 минут, 30 секунд (21.08.2009 - 11:23) Michael написал(а):
Скобочки закрывающей не вижу:
SQL |
REPLACE INTO `predpr` VALUES ('6', '84635, Фруктовая 7/22', 'Самойлов Дмитрий', '3086005512', '---') ; |
Спустя 1 минута, 57 секунд (21.08.2009 - 11:24) Michael написал(а):
А что это за скобки которые ты ставишь при назначении строк переменным?
Зачем они вообще нужны?
Зачем они вообще нужны?
PHP |
$str_sql=(" REPLACE INTO `predpr` VALUES ('".$_SESSION['id']."', '".$adress."', '".$name."', '".$id_code."', '".$telephone."' "); |
Спустя 52 минуты, 5 секунд (21.08.2009 - 12:17) ElfSam написал(а):
сам не знаю
Спустя 2 минуты, 54 секунды (21.08.2009 - 12:19) ElfSam написал(а):
Но скобку действительно я пропустил. Спасибо за подсказку