1

Тема: запись данных в две таблицы одновременно

добрый вечер, несколько дней изучаю php и mysql, возникли вопросы:

хочу через веб форму внести данные сразу в две таблицы ( в одну вносятся без проблем)
в первой таблице "uzel" следующие столбцы:
"id_adr"  AUTO_INCREMENT Первичный Уникальный
street
home
sales
manager
used (значения в ней будут 0 или 1)

во второй таблице "price_rent" :
"id_adr"  Первичный Уникальный
med_rent
optik_rent
connect (какое нибудь число)
-----------------------------------------------------------------------------
id адреса создается сам, но только в первой таблице.
Хочется чтобы я смог вводить данные  street ,home,sales ,manager  (в первую таблицу) и сразу  med_rent , optik_rent (во вторую таблицу,которая сможет использовать созданный ранее id_adr) и если цена подключения больше 0, то used из первой таблицы принимает значение 1, иначе 0.

2

Re: запись данных в две таблицы одновременно

Надо делать два последовательных запроса. Первый должен вернуть первичный ключ, значение которого используется во втором. Первичный ключ возвращает функция mysql_insert_id()
http://lv.php.net/manual/ru/function.my … ert-id.php

3

Re: запись данных в две таблицы одновременно

не понял, как это работает, вот мой код:

# первая таблица
$street = $_REQUEST['street']; 
$home = $_REQUEST['home']; 
$sales = $_REQUEST['sales']; 
$manager = $_REQUEST['manager'];
$used = $_REQUEST['used'];
$insert_sql = "INSERT INTO uzel (street, home, sales, manager, used)" . "VALUES('{$street}', '{$home}', '{$sales}', '{$manager}', '{$used}');"; 
mysql_query($insert_sql);
mysql_insert_id();

# вторая таблица
$ID = mysql_insert_id();
$optik_rent = $_REQUEST['optik_rent']; 
$med_rent = $_REQUEST['med_rent']; 
$connect = $_REQUEST['connect']; 
$insert_sql = "INSERT INTO price_rent (id_adr, optik_rent, med_rent, connect)" . "VALUES('{$ID}','{$optik_rent}', '{$med_rent}', '{$connect}');"; 

mysql_query($insert_sql);

при отправке данных через html страничку информация идет только в первую таблицу

4

Re: запись данных в две таблицы одновременно

Лишняя строка:
mysql_insert_id();
Оставьте только:
$ID = mysql_insert_id();

5

Re: запись данных в две таблицы одновременно

исправил и теперь информация не поступает вообще ни в одну таблицу

# первая таблица
$street = $_REQUEST['street']; 
$home = $_REQUEST['home']; 
$sales = $_REQUEST['sales']; 
$manager = $_REQUEST['manager'];
$used = $_REQUEST['used'];
$insert_sql = "INSERT INTO uzel (street, home, sales, manager, used)" . "VALUES('{$street}', '{$home}', '{$sales}', '{$manager}', '{$used}');"; 

# вторая таблица
$ID = mysql_insert_id();
$optik_rent = $_REQUEST['optik_rent']; 
$med_rent = $_REQUEST['med_rent']; 
$connect = $_REQUEST['connect']; 
$insert_sql = "INSERT INTO price_rent (id_adr, optik_rent, med_rent, connect)" . "VALUES('{$ID}', '{$optik_rent}', '{$med_rent}', '{$connect}');"; 

mysql_query($insert_sql);

6

Re: запись данных в две таблицы одновременно

Первый запрос не выполняется. Нет строки:
mysql_query($insert_sql);

7 (изменено: room29, 2014-04-17 11:04:00)

Re: запись данных в две таблицы одновременно

Сделал, как вы сказали, но данные все равно заносятся в 1 таблицу. Тогда я удалил 2 таблицу и создал её заново, и все заработало. Почему не работало раньше, неужели была опечатка sad

8

Re: запись данных в две таблицы одновременно

Смотрите как выглядит запрос.

exit($insert_sql);

9

Re: запись данных в две таблицы одновременно

спасибо за помощь!