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

  • Автор темы Автор темы Like
  • Дата начала Дата начала

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());

Где я тут наколбасил? Да и не знаю я как оно должно быть, подскажите пожалуйста. Подозреваю, что возможно это решается совсем просто, но я все еще учусь.
 
а почему в таблицу товаров записи добавляются только тогда, к когда добавляется новый юзер?
 
Потому, что это все произвольные названия таблиц. На самом деле мне нужно, чтобы просто добавлялись данные одновременно в две таблицы.
 
ну вот потрудись привести здесь реальные данные.
Не надо думать, что ты так хорошо представляешь себе решение, чтобы выдавать здесь урезанную и выдуманную информацию
 
Ок, пусть будет называться не товар, а персональные данные пользователя, соответсвенно таблицы: user и person где id - id пользователя, а uid его id в таблице person
id = uid ну кароче, одновременно нужно добалять а две таблицы.
 
правильнее mysql_insert_id(), хотя select max () в большинстве случаев должен отдать правильный результат
 
Записывает мне в 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());
Где ошибка? Я конечно понимаю, синтаксис скорее всего храмает, но вот что есть то есть.
 
странно.
вроде бы, ему совсем другую функцию писали...
 
Да не выходит ни так, ни по другому. Всегда ноль записывается, либо систакс ерор.
 
не все параметры для mysql_result, и написали, что есть пхп-функция для этого
 
Разобрался. Как всегда помогли все, кто отвечал, отдельное спасибо Фанату - за мгновенные ответы на все вопросы, такого не встретишь на других форумах.
Вот что получилось (может пригодится кому):
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. Можно составить список со строками, где условия выборки не верны, то есть все остальные, не вошедшие в условия выборки. Не знаю как, подскажите какая функция этим занимается?
 
Сверху