当我在用户在表单字段中输入他/她的电话号码时,我正在构建一个显示特定横幅的php页面。
所以这是我对数据库的逻辑:
带有字段的手机:id,用户名和电话号码。 带有字段的表格横幅:id,横幅的名称/标题和横幅(图像的路径)。 表格与字段的关系:这里是电话号码与横幅相关的位置以及我需要您帮助的位置:)
这是我对php页面的逻辑:
-form获取电话号码 -I查询数据库 - 我显示与表格中输入的电话号码相关的横幅。
下面是目前为止创建表格的代码..因为你会看到不知道如何推进。
万分感谢
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 :(得分: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.'";
答案 1 :(得分: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'