2010-12-14 57 views
0

我正在構建一個php頁面,當用戶在表單域中輸入他/她的電話號碼時,它將顯示特定的橫幅。關係表:與關係的第三張表

因此,這裏是我的數據庫邏輯:

表手機與字段:ID,用戶和電話號碼的名字。 帶有字段的表格橫幅:標識,橫幅的名稱/標題和橫幅(圖像的路徑)。同場 表關係:在這裏的電話號碼應該與一個旗幟,我需要你的幫助:)

而且這裏是我的PHP頁面邏輯:

構型中得到的電話號碼 - 我查詢數據庫 - 我顯示與表格中輸入的電話號碼相關的橫幅。

下面是表格創建的代碼,到目前爲止..因​​爲你會看到不知道如何推進。

感謝所有的百萬

CREATE TABLE phones(

id_phone INT NOT NULL AUTO_INCREMENT, 

nombre VARCHAR(30), 

number INT (9), 

PRIMARY KEY (id_phone) 

) TYPE = INNODB; 


CREATE TABLE banners (

id_banners INT NOT NULL AUTO_INCREMENT, 

id_phone INT NOT NULL, 

name VARCHAR(250), 

banner VARCHAR(250), 

PRIMARY KEY(id_phone), 

INDEX (id_phone), 

FOREIGN KEY (id_phone) REFERENCES clientes(id_phone) 

) TYPE = INNODB; 

回答

0

首先有什麼問題嗎? 在這一步我可以提到的是,這些實體之間的關係是一對一的關係嗎?如果是這樣,你最好把所有這些數據放到一個表中。

++

CREATE TABLE phones(
phone_id INT NOT NULL AUTO_INCREMENT, 
name VARCHAR(30), 
number INT (9), 
PRIMARY KEY (id_phone) 
) TYPE = INNODB; 

CREATE TABLE banners (
banner_id INT NOT NULL AUTO_INCREMENT, 
phone_id INT NOT NULL, 
name VARCHAR(250), 
banner VARCHAR(250), 
PRIMARY KEY(id_phone), 
INDEX (id_phone), 
FOREIGN KEY (phone_id) REFERENCES clientes(phone_id) 
) TYPE = INNODB; 

和查詢將是:

$query = "SELECT * FROM clients LEFT JOIN banners USING(phone_id) WHERE clients.number='.$number.'"; 
+0

這是一個很好的問題,我這樣一個新手,我更好的解釋自己圖片:http://217.116.9.130/2tables.gif – Lleoun 2010-12-14 17:04:57

0

從你的問題,似乎每個電話號碼只有一個與之相關聯的旗幟。因此,刪除banners.id_banners場,並添加phones.id_banners

然後選擇數據,你可以做一個JOIN:

SELECT phones.id_phone, phones.nombre, phones.number, 
banners.id_banners, banners.name, banners.banner 
JOIN banners ON phones.id_banners = banners.id_banners 
WHERE phone = '123-456-789'