Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Получить ID последней строки добавленной в БД MySQL

Ответить
Настройки темы
[решено] Получить ID последней строки добавленной в БД MySQL

Пользователь


Сообщения: 91
Благодарности: 3


Конфигурация

Профиль | Отправить PM | Цитировать


Добрый день.
Есть 4 -ре таблицы :
Цитата:
mysql> create table contacts
-> (id int primary key auto_increment,
-> caption char(63)
-> );
Query OK, 0 rows affected (0.45 sec)

mysql> create table tel_fax
-> (id int primary key auto_increment,
-> cid int,
-> telefon char(25),
-> type int);
Query OK, 0 rows affected (0.08 sec)

mysql> create table address
-> (id int primary key auto_increment,
-> cid int,
-> adrress char(255));
Query OK, 0 rows affected (0.08 sec)

mysql> create table mails
-> (id int primary key auto_increment,
-> cid int,
-> email char(63),
-> name char(63));
В таблице tel_fax, address,mails поле cid соответствует полю id в таблице contacts.
Добавляю запись в таблицу:
sqlquery("INSERT into contacts values (NULL,".$URL->GET['name'].");
Вопрос: каким образом можно добавить(желательно средствами mysql) записи в таблицы tel_fax, address,mails , так что бы cid в этих таблицаx равнялся contacts.id? (Так как contacts.id изменяется автоматически, то понятное дело явно cid я указать не могу).

Отправлено: 12:12, 04-05-2007

 

Аватара для Strange_V

Старожил


Сообщения: 222
Благодарности: 29

Профиль | Отправить PM | Цитировать


Возможно я не прав, но не вижу смысла создавать 4 таблицы практически с одним полем.. Почему не поместить все в одну?

-------
Жизнь-это шахматная партия, по окончании которой и короли, и пешки ложатся в один ящик.


Отправлено: 12:54, 04-05-2007 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 91
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата:
Возможно я не прав, но не вижу смысла создавать 4 таблицы практически с одним полем.. Почему не поместить все в одну?
дело в том что у каждого контакта может быть несколько телефонов, адресов, емейлов и факсов...

В любом случае хотелось бы решить данную проблему, так как вопрос,имхо, из ряда основополагающих..

Отправлено: 13:23, 04-05-2007 | #3


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


ssdm, прочтите документацию по MYSQL_INSERT_ID в MySql и по ее "реализации" из-под PHP. Имхо, как раз Ваш случай.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:46, 04-05-2007 | #4


Пользователь


Сообщения: 91
Благодарности: 3

Профиль | Отправить PM | Цитировать


уже разобрался ... сделал так:
Цитата:
sqlquery("INSERT into contacts values (NULL,'".$URL->GET['name']."');");
sqlquery("INSERT into address values (NULL,(SELECT id from contacts where caption='".$URL->GET['name']."'),'".$URL->GET['address']."');");
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:10, 04-05-2007 | #5


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Это Вы очень неправильно сделали. contacts.caption - не уникальное поле и в случае когда подзапрос вернет массив, а не одиночное значение, будет логическая ошибка... впрочем просто ошибка .
Сделайте так (если я правильно использую принятые Вами функции):
sqlquery("INSERT into contacts values (NULL, '".$URL->GET['name']."');");
sqlquery("INSERT into address values (NULL, ".mysql_insert_id().", '".$URL->GET['address']."');");

Последний раз редактировалось Prisoner, 05-05-2007 в 13:01.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:59, 05-05-2007 | #6


Старожил


Сообщения: 236
Благодарности: 0

Профиль | Отправить PM | Цитировать


Prisoner шонто с кавычками помоему намудрили

Отправлено: 03:29, 05-05-2007 | #7


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Да, это Вы правы, поправил... кажется... вот, что с человеком подсветка делает - уж и в блокноте код набирать разучился %(.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 13:02, 05-05-2007 | #8


Пользователь


Сообщения: 91
Благодарности: 3

Профиль | Отправить PM | Цитировать


Prisoner
так и сделал... спасибо за помощь

Отправлено: 21:15, 05-05-2007 | #9

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


ssdm
Итог, который описан у Вас выше?

Отправлено: 19:47, 06-05-2007 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Получить ID последней строки добавленной в БД MySQL

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как получить данные в скрипт из командной строки? madmasles AutoIt 2 27-11-2009 15:50
Win2K на cервере не видит 2GB добавленной памяти DoublE_zone Microsoft Windows NT/2000/2003 6 30-03-2007 21:23
проблема последней мили! rivera Сетевые технологии 1 25-01-2006 08:22
выборка случайной строки из таблицы на MySQL Vlad Drakula Вебмастеру 5 19-10-2004 05:55
Как получить путь к файлу в виде строки на Visual Basic .NET Igor Laptev Программирование и базы данных 1 14-10-2003 00:50




 
Переход