Php 搜索带有标记的图像
我有一个大约700张图片的数据库,但我想创建一个搜索栏,这样我就可以通过标签找到它们 我该如何开始这样做Php 搜索带有标记的图像,php,mysql,Php,Mysql,我有一个大约700张图片的数据库,但我想创建一个搜索栏,这样我就可以通过标签找到它们 我该如何开始这样做 我相信你会将标签添加到mysql数据库中……我该如何做,以及我该如何做多个标签?有一个额外的表标签,其列将是:id和name,它们将保存所有可能的标签,还有另一个表image\u tags,它将具有image\u id和tag\u id | tags | +---+------+ | 1 | cats | | 2 | dogs | | 3 | foo | | im
我相信你会将标签添加到mysql数据库中……我该如何做,以及我该如何做多个标签?有一个额外的表
标签
,其列将是:id
和name
,它们将保存所有可能的标签,还有另一个表image\u tags
,它将具有image\u id
和tag\u id
| tags |
+---+------+
| 1 | cats |
| 2 | dogs |
| 3 | foo |
| image_tags |
+---------------------------+
| 1 (cat image) | 1 |
| 1 | 3 |
| 2 (dog image) | 2 |
| 3 (cat and dog image) | 1 |
| 3 | 2 |
这样,同一图像可以有多个标记,并且同一标记可以出现在多个表上
这称为多对多关系这是经典的“多对多”关系
要创建基于标签的系统,您应该在DB中创建两个新的故事(假设“标签”和“标签图像”表)
在“标签”表中有两个字段:“id”和“标签”
在“tags_images”表中有3个字段:“id”、“tag_id”和“image_id”
因此,要向iamge添加标记,只需将新记录添加到“tags\u images”表中,连接标记(通过“tag\u id”)和图像(bt“image\u id”)
此外,您还必须在“标记”表中添加一个新标记,因为没有这样的标记
要获取标记为“dog”的所有图像,您应该进行简单的sql连接查询,如:
SELECT `tags`.*, `images`.*
FROM `tags` t
INNER JOIN `tags_images` ti ON t.`id` = ti.`tag_id`
INNER JOIN `images` i ON i.`id` = ti.`image_id`
对于多个标记,请查看“多对多”表结构。。。