Php 图书馆数据库

Php 图书馆数据库,php,mysql,database,many-to-many,Php,Mysql,Database,Many To Many,因此,我和我的同事被指派制作一个图书馆数据库作为课程的任务,然后制作一个html数据库界面,在这个界面上,有人可以在数据库中执行某些任务,例如插入行、删除行、查找行等 我们已经创建了数据库,导入了数据库,但问题是在其中插入了元素 例如,books表与authors表有多对多的关系(其中每个表的主键分别是ISBN和authors ID),因此当我们想在数据库中插入一本书及其作者时,我们不知道该怎么做,因为他们在不同的表中。对于如何将单个表单中的数据放入具有不同主键的多个表中,我们感到困惑 我们一直

因此,我和我的同事被指派制作一个图书馆数据库作为课程的任务,然后制作一个html数据库界面,在这个界面上,有人可以在数据库中执行某些任务,例如插入行、删除行、查找行等

我们已经创建了数据库,导入了数据库,但问题是在其中插入了元素

例如,books表与authors表有多对多的关系(其中每个表的主键分别是ISBN和authors ID),因此当我们想在数据库中插入一本书及其作者时,我们不知道该怎么做,因为他们在不同的表中。对于如何将单个表单中的数据放入具有不同主键的多个表中,我们感到困惑

我们一直在努力寻找这样的例子,但没有结果

甚至连教程之类的链接都很受欢迎

服务器端代码是PHP


非常感谢。

您只需收集表单变量并构建所需的SQL语句即可。我不是PHP专家,所以我只熟悉使用PHP的mySQL插件

考虑一个带有地址部分的person表单,我想将其添加到一个单独的表中:

 <form action="makePerson.php" method="POST">
    First Name: <input type="text" name="firstName"/>
    First Name: <input type="text" name="lastName"/>
    Address: <input type="text" name="address"/>
    <input type="submit"/>
 </form>

这是总的想法。请注意,这不是生产质量代码,只是一个示例。

我有一些建议供您参考

  • 使用主题名称下拉框,并通过主题表填充它,因此您只能选择数据库中的主题名称

  • 输入图书详细信息(表中的所有值加上主题名称)后,手动将ISBN插入作者表

  • 在图书用户界面上,还可以使用下拉框作为出版商名称(因为许多人不记得出版商代码),然后在回发时,您可以从value=“??”中选择value publisher code
    Sams Publisher


  • 如果在同一页面中添加作者、出版商、书籍和主题的编辑表单,用户将无法输入太多字段,他可能会感到困惑,但由于这只是一个家庭作业,您可以忽略这一点,并尽最大努力在一个页面上管理它们
  • 示例库数据库:

    嘿,你能在问题中发布你的ERD图吗?这会很有帮助。你的服务器端代码是用什么编写的?PHP、ASP、java?选择语句获取数据(例如从主题表subjectName)并插入到book表中。在我更新的帖子中查看示例和示例。。!因此,当我将book\u isbn添加到book表中时,我想我也必须手动将其添加到book\u author表中?如果是这样,我的问题是,在同一个表中,如何添加作者,同时将他们添加到author表中。我的问题是我是否会在行中使用空白字段。这就是让我对多对多关系感到困惑的地方。你的映射取决于书和作者,所以你必须先添加它们。因此,1)插入书2)插入作者3)插入书/作者记录非常感谢你,这让事情变得非常清楚。但问题是我每本书都有很多作者。如何添加多个作者。这主要是一个带有php的html问题。我是否让用户选择有多少作者,并生成相应的表来填充他?哦,明白了-只需使用相同的名称进行多个输入(例如作者)-大多数服务器端技术都会将它们作为数组接受。我没有用PHP做过,但我在其他地方也做过。请参见()用户将编写主题名称。但这不是问题所在。问题在于许多作者,如何为一本给定的书一次添加所有作者您也可以使用
    ,其中将包含来自数据库的作者姓名。数据库将为空,界面将在那里供某人填充数据库,这就是为什么我在为一本书添加多个作者时遇到问题。您可能会提供一个超链接“添加新作者”这可能会打开另一个页面来创建作者,每个数据库从空开始,然后增长到满需要。@SilliconTouch您可以在一个页面上填充所有表编辑器UI,您应该创建不同的页面,或者您必须使用JQuery UI和AJAX。
     $firstName = $_POST['firstName'];
     $lastName = $_POST['lastName'];
     $address = $_POST['address'];
    
     $id = generateId();
    
     $person_insert = "insert into person values (" . $id . ", " . $firstName . ", " . $lastName . ")";
     $address_insert = "insert into address values (" . $address . ", " . $id . ")";
    
     mysql_execute($person_insert);
     mysql_execute($address_insert);