我有两个列表。第一个列表是图书作者列表,每个名字都有自己的ID
示例:
- id-name
- 1 Miagi先生
- 2 Smith先生
- 3孙
- 4海军准将先生
第二个列表是每本书有一个或多个作者的书籍列表
示例:
- 图书作家
- 所罗门国王矿业公司-Miagi先生
- 她-Miagi先生
- 报童-海军准将和孙
因此,在生成的列表中,我需要每次出现时写入者的ID(来自第一个列表)
示例:
- 图书作者id
- 所罗门国王矿业公司-Miagi先生-1
- 她-Miagi先生-1
- 报童-海军准将和孙-4,3
PHP中获得此结果的最佳方法是什么?
我希望通过阅读你的问题和评论,我能正确理解你。
我认为您仍然需要三个数据库表:
authors:
id int(11) NOT NULL,
name varchar(200) NOT NULL,
PRIMARY KEY (`id`)
books:
id int(11) NOT NULL,
title varchar(200) NOT NULL,
PRIMARY KEY (`id`)
author2books:
id int(11) NOT NULL,
author_id int(11) NOT NULL,
book_id int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE (`author_id`, `book_id`)
现在迭代您的第一个列表(author-id),并简单地将结果插入到firstauthors表中。
然后迭代第二个结果(book,authors as string)。在这个迭代中,检查每个authors字符串。如果它有多个作者,请使用php_explode将它们分开。
我希望这能有所帮助。