2013-02-07 35 views
0

我對PHP和MySQL相當陌生。在MySQL中搜索異域

我有兩個表如下:

1.`users`: `id`//primary key 
     : `name`//user's name 

2.`events`: `u_id`//index key and foreign field to users' id 
      : `u_name` 

,用戶將在一個形式輸入一個id。將在users表中搜索id,相關詳細信息將被記錄並插入events表中。

我創建了外國領域,直到現在我做了一個函數,它將id作爲變量,並將users表中的詳細信息作爲變量返回,然後將其插入到events表中。但是,那意味着使用「很多」變量,我認爲外國領域的用途是什麼。 我仍然在學習PHP,不知道如何查找和插入從一個表到另一個使用FOREIGN字段。我只知道如何創造外地。請幫忙。

+0

你是什麼意思'不知道如何查找和插入使用FOREIGN字段從一個表到另一個' – asifsid88

+0

共享表模式,從'show create table tablename'輸出。 – SparKot

回答

1

這是你在說什麼?
這是如何創建外鍵。

CREATE TABLE parent (id INT NOT NULL, 
        PRIMARY KEY (id) 
); 
CREATE TABLE child (id INT, parent_id INT, 
        INDEX par_ind (parent_id), 
        FOREIGN KEY (parent_id) REFERENCES parent(id) 
         ON DELETE CASCADE 
); 

道歉,如果我沒有理解你的問題

修訂

INSERT table1 (col1, col2, col3) 
SELECT col1, col2, col3 
FROM table2 
WHERE col1 = 'xyz' 

希望這有助於

+0

我知道如何創建外地。我不知道的是,如何將一個表中的值插入另一個表並存儲它們? – xan

0

您不需要用戶名存儲在事件表。外鍵的意義在於,您只需將用戶標識存儲在事件表中,因爲這是對用戶的參考。

要爲事件得到了用戶名,說事件6號,你會做

select name from users join events on users.id = events.u_id where events.id = 6 

所以,你不應該試圖將用戶數據插入到事件表。只需將ID放在那裏,用戶數據將可用於您使用外鍵進行檢索。