我有一个表格,我有很多音乐流派.艺术家可以在很多类型下演唱.我把这些类型放在复选框中.现在我需要将复选框的值存储到单个字段中.
有些人可以帮我解决一些代码片段,因为我是php编程新手吗?
解决方法:
一般来说,你不应该这样做.您的数据库不会是normalized,这将使在类型字段上构建查询变得困难.
如果你有一个名为artist的表和一个名为genres的表,那将是一个更好的主意.然后,您将在另一个表artists_genres中定义艺术家和流派之间的关系,该表将只包含artist_id和genre_id.你仍然可以为同一位艺术家提供多种类型.
例如,考虑下面定义的表结构:
TABLE artists
-------------
artist_id name surname
1 Alicia Keys
2 Mariah Carey
...
TABLE genres
------------
genre_id name
1 R&B
2 pop
3 hip hop
4 dance
...
TABLE artists_genres
--------------------
artist_id genre_id
1 1
1 2
1 3
2 1
2 2
2 4
...
在这种情况下,您将能够构建简单的查询,例如:
SELECT
artists.name, artists.surname
FROM
artists
INNER JOIN
artists_genres ON (artists_genres.artist_id = artists.artist_id)
INNER JOIN
genres ON (genres.genre_id = artists_genres.genre_id)
WHERE
genre.name = 'pop';
如果您的艺术家的类型存储在艺术家表中的单个字段中,则上述将很难实现.除了困难之外,它可能会缓慢而低效,特别是如果你有很多记录.
标签:html,php,sql,mysql
来源: https://codeday.me/bug/20190726/1546942.html