Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: вставка с проверкой в несколько таблиц

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
gaiver
Отправлено: 08 Октября, 2006 - 13:18:01
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Окт. 2006  


Помог: 0 раз(а)




не могу обуздать Mysql )
при помощи формы нужно внести данные в четыре связанные таблицы.

примерная логика процесса следующая:

INSERT INTO country (id,country_name) VALUES ("", "Germany");
INSERT INTO director (id, director_name) VALUES ("", "Ibr");
INSERT INTO format (id, format) VALUES ("", "XVID");

INSERT INTO movies (russian, original, lenght, director_id, country_id, yearrr, number, id_format) VALUES ("русское название","английское",222, "","",22,2,"")
WHERE movies.director_id=director.id
AND movies.country_id=country.id
AND movies.id_format=format.id;

Пользователь вводит russian, original, director_name, country, lenght, number, yearrr, format. Значения director_name, country, format записываются в соответствующие таблицы и им присваиваются значения ключей, в случае если таких данных в таблице нет (страны германия в таблице нет), в противном случае ничего не записывается.
В таблицу movies записываются все остальные значения, а за место director_id, country_id, id_format подставляются значения введеные в предыдущем insert. Как на sql Это сделать? Че не пробовал, не получается....

 
 Top
valenok
Отправлено: 09 Октября, 2006 - 12:03:06
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




mysql_insert_id()
это чтоли? Я не понял..


-----
Truly yours, Sasha.
 
My status
 Top
-SCHATTEN-
Отправлено: 16 Октября, 2006 - 21:47:19
Post Id



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


Покинул форум
Сообщений всего: 615
Дата рег-ции: Июль 2006  
Откуда: Оттуда !


Помог: 0 раз(а)




что то я тоже мало что понял ?! тебе РНР надо ? или SQL ??
 
 Top
evgenijj
Отправлено: 17 Октября, 2006 - 11:54:25
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $query = "SELECT id FROM country WHERE country_name='".$_POST["country"]."'";
  4. $res = mysql_query ( $query );
  5. if ( mysql_num_rows( $res ) > 0 )
  6. {
  7.         $id_country = mysql_result( $res, 0, 0 );      
  8. }
  9. else
  10. {
  11.         // Предполагается, что первичный ключ id снабжен механизмом AUTO_INCREMENT
  12.         $query = "INSERT INTO country (country_name) VALUES ('".$_POST["country"]."')";
  13.         mysql_query( $query );
  14.         $id_country = mysql_insert_id();
  15. }
  16.  
  17. $query = "SELECT id FROM director WHERE director_name='".$_POST["director"]."'";
  18. $res = mysql_query ( $query );
  19. if ( mysql_num_rows( $res ) > 0 )
  20. {
  21.         $id_director = mysql_result( $res, 0, 0 );     
  22. }
  23. else
  24. {
  25.         // Предполагается, что первичный ключ id снабжен механизмом AUTO_INCREMENT
  26.         $query = "INSERT INTO director (director_name) VALUES ('".$_POST["director"]."')";
  27.         mysql_query( $query );
  28.         $id_director = mysql_insert_id();
  29. }
  30.  
  31. $query = "SELECT id FROM format WHERE format_name='".$_POST["format"]."'";
  32. $res = mysql_query ( $query );
  33. if ( mysql_num_rows( $res ) > 0 )
  34. {
  35.         $id_format = mysql_result( $res, 0, 0 );       
  36. }
  37. else
  38. {
  39.         // Предполагается, что первичный ключ id снабжен механизмом AUTO_INCREMENT
  40.         $query = "INSERT INTO format (format_name) VALUES ('".$_POST["format"]."')";
  41.         mysql_query( $query );
  42.         $id_format = mysql_insert_id();
  43. }
  44.  
  45. $query = "INSERT INTO movies
  46.                  (russian,
  47.                  original,
  48.                  lenght,
  49.                  director_id,
  50.                  country_id,
  51.                  yearrr,
  52.                  number,
  53.                  format_id)
  54.                  VALUES
  55.                  ('русское название',
  56.                  'английское',
  57.                  222,
  58.                  ".$id_director.",
  59.                  ".$id_country.",
  60.                  22,
  61.                  2,
  62.                  ".$id_format.")";
  63. mysql_query( $query );
  64. $id_new_movies = mysql_insert_id();
  65.  
  66. ?>
  67.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB