次のように作成した 2 つの 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 を使用して「book」テーブルに追加し、抜粋テーブルでレコードを適切に変更する必要があります。ヘルプ?
ありがとう!