0

我正在构建一个 php 页面,当用户在表单字段中输入他/她的电话号码时,它将显示一个特定的横幅。

所以这是我对数据库的逻辑:

带有字段的平板电话:id、用户名和电话号码。带有字段的表格横幅:id、横幅的名称/标题和横幅(图像的路径)。与字段的表关系:这里是电话号码应该与横幅相关的地方,我需要你的帮助 :)

这是我对 php 页面的逻辑:

-form 获取电话号码 -I 查询数据库 -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;
4

2 回答 2

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.'";
于 2010-12-14T16:55:17.187 回答
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'
于 2010-12-14T16:57:36.860 回答