Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL多个表和一个查找表_Php_Sql - Fatal编程技术网

Php SQL多个表和一个查找表

Php SQL多个表和一个查找表,php,sql,Php,Sql,我试着四处寻找答案,但还是有点迷路 我有一个使用PHP/SQL存储音乐曲目详细信息的网站。 我想搜索/添加/编辑/删除曲目标题、专辑、作曲家、bpm、时间签名、持续时间、插装、流派、关键字(说明)。 到目前为止,我已经做了一个只有三个表和一个查找表(曲目、作曲家、专辑)的测试版本,它似乎可以进行搜索 表“track”(id,tracktitle) 表“composer”(id,composer名称) 表'album'(id,albumtitle) 表'albumtrack(track.id、co

我试着四处寻找答案,但还是有点迷路

我有一个使用PHP/SQL存储音乐曲目详细信息的网站。 我想搜索/添加/编辑/删除曲目标题、专辑、作曲家、bpm、时间签名、持续时间、插装、流派、关键字(说明)。 到目前为止,我已经做了一个只有三个表和一个查找表(曲目、作曲家、专辑)的测试版本,它似乎可以进行搜索

表“track”(id,tracktitle) 表“composer”(id,composer名称) 表'album'(id,albumtitle) 表'albumtrack(track.id、composer.id、album.id)

然而,在添加新曲目并为其分配作曲家和专辑时,我似乎无法正确插入位。tracktitle会进入曲目表,但如何在albumtrack查找表中链接它呢

我这里需要一些额外的位子吗

  $sql = "INSERT INTO track SET
  track.tracktitle='$tracktitle' ";
还有。。。通过为每一位使用表(bpm表、持续时间表、类型表),我这样做是否正确

一个曲目可能有一个以上的持续时间(不同的编辑)、BPM和时间签名,因此将共享大量数据。 我还希望用户能够搜索一系列持续时间或bpm,例如2到3分钟之间的曲目

在我扩展我的测试版本之前,我需要一些关于我是否以最好的方式来做这件事的建议

谢谢

假设“id”字段是自动递增的值(数据库正在为您生成它们),那么在插入曲目后,您必须恢复刚刚添加的行的id(使用
mysql\u insert\u id()
)。然后使用该id,加上唱片集和作曲家id,插入到albumtrack中


另外,您应该知道您使用的插入语法是特定于MySQL的。如果您从未考虑过切换DBs,那么这很好,但您可能想学习“标准”插入语法(
INSERT INTO tablename(col1,col2…)值(val1,val2…
)。

您的插入查询应该类似于:

  $sql = "INSERT INTO track VALUES('','$tracktitle','$duration','$etc')";
自动递增id的第一个值留空

“另外……我是否正确地使用每一位的表(bpm表、持续时间表、类型表)?”

你能不能不让一个表包含多个字段(bbm、持续时间等)


希望这有帮助。

谢谢你们,非常有帮助。是的,我可以把它作为一个表来做,但当我在阅读一些教程时,他们似乎更喜欢查找表。但是,只有当每个表都有相当多的条目链接在一起时,这些才有用吗?我想做的事不需要它吗?谢谢你。我试试看