Добавить в таблицу 2 id из 1

Like

Новичок
Добавить в таблицу 2 id из 1

Доброго времени суток.
(не знаю правильно ли я назвал тему, но хочу задать вопрос:
1. Есть две таблицы: user и tovar. В таблице user, поле id - auto_increment.
| id | users |
| 1 | vasia |
| 2 | petia |
| 3 | grisha |

| uid | tovar |
| 1 | apelsin |
| 1 | mandarin |
| 2 | kers |
| 3 | tort |

Как сделать, что бы в таблицу tovar в поле uid записывалось ключевое поле id из таблицы user? Я так понимаю, что сначала делаю запрос добавления в таблицу user
PHP:
mysql_query("INSERT INTO user SET title='$title', … ;") or die(mysql_error());
Потом нужно спросить у таблицы user последнюю строчку, где поле id, присвоить ему временную переменную temp_id.
PHP:
$bpid=mysql_query("SELECT max(id) FROM user WHERE id='$id'") or die(mysql_error());
$temp_id=@mysql_result($bpid,0,0);
А потом естественно добавить все это в таблицу Tovar
PHP:
mysql_query("INSERT INTO tovar SET title='$temp_id', … ;") or die(mysql_error());
Где я тут наколбасил? Да и не знаю я как оно должно быть, подскажите пожалуйста. Подозреваю, что возможно это решается совсем просто, но я все еще учусь.
 

Фанат

oncle terrible
Команда форума
а почему в таблицу товаров записи добавляются только тогда, к когда добавляется новый юзер?
 

Like

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

Фанат

oncle terrible
Команда форума
ну вот потрудись привести здесь реальные данные.
Не надо думать, что ты так хорошо представляешь себе решение, чтобы выдавать здесь урезанную и выдуманную информацию
 

Like

Новичок
Ок, пусть будет называться не товар, а персональные данные пользователя, соответсвенно таблицы: user и person где id - id пользователя, а uid его id в таблице person
id = uid ну кароче, одновременно нужно добалять а две таблицы.
 

bubblegum

Новичок
правильнее mysql_insert_id(), хотя select max () в большинстве случаев должен отдать правильный результат
 

Like

Новичок
Записывает мне в uid нули
PHP:
mysql_query("INSERT INTO user SET title='$title', … ;") or die(mysql_error());
$getid=mysql_query("SELECT last_insert_id() FROM user") or die(mysql_error());
$temp_id=@mysql_result($getid);
mysql_query("INSERT INTO person SET uid='$temp_id';") or die(mysql_error());
Где ошибка? Я конечно понимаю, синтаксис скорее всего храмает, но вот что есть то есть.
 

Фанат

oncle terrible
Команда форума
странно.
вроде бы, ему совсем другую функцию писали...
 

Like

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

Lexx_DN

Новичок
не все параметры для mysql_result, и написали, что есть пхп-функция для этого
 

Like

Новичок
Разобрался. Как всегда помогли все, кто отвечал, отдельное спасибо Фанату - за мгновенные ответы на все вопросы, такого не встретишь на других форумах.
Вот что получилось (может пригодится кому):
PHP:
mysql_query("INSERT INTO user SET title='$title', …, id= LAST_INSERT_ID(id) ;") or die(mysql_error());
$last_id = mysql_insert_id();
mysql_query("INSERT INTO person SET uid='$last_id', … ;") or die(mysql_error());
Сколько же терпения надо, чтобы отвечать ламерам, подобным мне :)
И еще помог как всегда Гугл..., рупхпнетмануал.

-~{}~ 23.11.06 10:06:

Другой вопрос:
1. Если есть id в user а uid в person нету, то что можно предпринять?
По LEFT JOIN смогу я составить запрос?
2. Можно составить список со строками, где условия выборки не верны, то есть все остальные, не вошедшие в условия выборки. Не знаю как, подскажите какая функция этим занимается?
 
Сверху