0

사용자가 양식 필드에 전화 번호를 입력하면 특정 배너를 표시하는 PHP 페이지를 작성합니다. 필드관계형 테이블 : 관계가있는 세 번째 테이블

표 전화 : ID, 사용자 및 전화 번호의 이름

그래서 여기에 데이터베이스에 대한 내 논리입니다. 필드가있는 테이블 배너 : 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

0

질문에서, 각각의 전화 번호와 연결된 하나의 배너가 보인다. 따라서, phones.id_banners 그런

데이터를 선택, 당신이 할 수있는 banners.id_banners 필드를 삭제하고 추가 할 가입 :

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' 
관련 문제