Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: insert do dwóch tabel
Forum PHP.pl > Forum > PHP
bliitz
Witam

Mam w bazię między innymi takie dwie tabele:

Kod
  
  
   CREATE TABLE pictures (
       id_picture INTEGER UNSIGNED DEFAULT 0 NOT NULL,
       PRIMARY KEY (id_picture)
   ) ENGINE=InnoDB;
  
   CREATE TABLE records (
       id_record INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
       categories_id_categorie INTEGER UNSIGNED DEFAULT 0 NOT NULL,
       pictures_id_picture INTEGER UNSIGNED DEFAULT 0 NOT NULL,
       movies_id_movie INTEGER UNSIGNED DEFAULT 0 NOT NULL,
       users_id_user INTEGER UNSIGNED DEFAULT 0 NOT NULL,
       title VARCHAR(80) DEFAULT '' NOT NULL,
       count INTEGER UNSIGNED DEFAULT 0 NOT NULL,
       size INTEGER UNSIGNED DEFAULT 0 NOT NULL,
       location_file VARCHAR(80) DEFAULT '' NOT NULL,
       add_date INT DEFAULT 0 NOT NULL,
       adult TINYINT UNSIGNED DEFAULT 0 NOT NULL,
       PRIMARY KEY (id_record)
   ) ENGINE=InnoDB;
  
   CREATE INDEX records_FKIndex1 ON records (users_id_user ASC);
  
   CREATE INDEX records_FKIndex2 ON records (movies_id_movie ASC);
  
   CREATE INDEX records_FKIndex3 ON records (pictures_id_picture ASC);


i teraz chcę dodać jakiś wpis to tabeli rekord, wykonuje to za pomocą takiego polecenia :

  1. <?php
  2. parent::query('INSERT INTO records(title, categories_id_categorie, size, add_date, adult) 
  3.  VALUES('."'$title'".','."'$category'".','."'$size'".','."'$now'".','."'$adult'".')');
  4.  
  5. $last_id = mysql_insert_id();
  6.  
  7. parent::query('INSERT INTO pictures(id_picture) VALUES('."'$last_id'".')');
  8. ?>


po wykonaniu tego pojawiają sie wartości w obu tabelach prawidłowo, jednak pole pictures_id_picture w tabeli RECORDS jest puste. Jest to klucz obcy z tabeli PICTURES a w niej prawidłowo jest dodany rekord, czy musze dodawać ręcznię tą wartosć także do tabeli RECORS czy jako klucz obcy nie powinna zostać automatycznie uzupełniona??
marcio
Cytat
CREATE TABLE pictures (
id_picture INTEGER UNSIGNED DEFAULT 0 NOT NULL,
PRIMARY KEY (id_picture)
) ENGINE=InnoDB;

Nie powinny byc tez auto_increment skoro to id questionmark.gifA jak chcesz modyfikowac na podstawie id uzuj update
bliitz
Cytat(marcio @ 15.04.2008, 23:48:19 ) *
Nie powinny byc tez auto_increment skoro to id questionmark.gif A jak chcesz modyfikowac na podstawie id uzuj update


Wydaje mi się że nie może być auto_increment bo wartości dodawane są tam jako to co zwróci funkcja mysql_insert_id().

Nie chodzi mi o modyfikowanie tylko o to że skoro w tabeli pictures jest jakas wartość w polach id_pictures to dlaczego nie jest ona widoczna w tabeli records skoro to jest klucz obcy w niej, w records w kolumnie id_pictures są same 0 mimo że w tabeli pictures wartości są inne.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.