我有两个这样创建的 MySQL 表:
CREATE TABLE book(id INT UNSIGNED NOT NULL AUTO_INCREMENT KEY, title VARCHAR(256),
book_id INT, author VARCHAR(128), year INT, httplink VARCHAR(256)) ENGINE MyISAM;
和
CREATE TABLE excerpt(id INT UNSIGNED NOT NULL AUTO_INCREMENT KEY, book_id INT, excerpt_title
VARCHAR(256), year INT, measure VARCHAR(256), page VARCHAR(128)) ENGINE MyISAM;
所以有一个书籍表......以及每本书的摘录表......它们由 book_id 链接。每本独特的书都有一个 book_id...并且该书的每个摘录都有相同的 book_id。
现在,我有一个 php 表单,允许用户在搜索条目后对其进行编辑:
<p>Edit Record</p>
<form method="post">
<p>Title:
<input type="text" name="title" value="$n"></p>
<p>Author:
<input type="text" name="author" value="$e"></p>
<p>Year:
<input type="integer" name="year" value="$p"></p>
<p>Mirlyn link:
<input type="text" name="link" value="$l"></p>
<p>Excerpt name:
<input type="text" name="excerpt" value="$ex"></p>
<p>Page numbers
<input type="text" name="page" value="$s"></p>
<input type="hidden" name="id" value="$id">
<p><input type="submit" value="Update"/>
当用户点击链接旁边的编辑按钮时,以下字段会自动填充用户选择编辑的记录:标题、作者、年份。
如果用户不更改标题,但更改(或不更改)其他字段,那么更新记录的正确 MySQL 语句是什么?我相信我只需要更新“摘录”表。
但是...如果用户编辑标题...我该如何管理?我必须检查标题是否存在于“书”表中。如果是这样,我将不得不更改摘录的 book_id。如果没有,我必须将其添加到具有唯一 book_id 的“书”表中,然后在摘录表中适当地更改记录。帮助?
谢谢!