#PHPのフォームについて
PHP初心者です。
文章が少し分かり辛いかもしれませんが、ご理解いただけると幸いです。
現在、私がHTMLで作ったフォームには5つの項目があり、4つはBOOKテーブル、1つのAuthorNameという項目はAuthorテーブルに繋がってます。
(本の登録のデータベースで本の情報と著作者の情報です。)
2つのテーブルはどちらもAuthorIDがあります。0. 番号リスト
分からない部分というのが、例えばフォームを送信したとき、Authorテーブルに送信されたAuthorName値が
元からそのAuthorテーブルに入ってる値と一致した場合、そのAuthorNameとつながってるAuthorIDを会得し、
BOOKテーブルの中にはそのAuthorIDを反映させたいです。
例えばフォームでAuthorNameの部分に”AAA”として(他4つの横目も埋める)送信したとき、
もしAuthorテーブルのAuthorNameのカラムに”AAA”が元からあった場合、その隣り合ったAuthorIDを
BOOKテーブルにあるAuthorIDに反映させたいです。
AuthorID(Authorテーブル) 1 なら AuthorID(BOOKテーブル)も 1になる、というようにです。
ちなみに下記コードは全コードではなく、Authorの部分のみ抜粋しました。
データベースには問題なくつながっています。
分かり辛い部分が多々あり、申し訳ありませんが、何卒アドバイス等いただけると幸いです。
発生している問題・エラーメッセージ
if(!empty($_POST["author"])){ $tb_author = testInput($_POST["author"]); $stmt = $conn->prepare("SELECT AuthorID, Name FROM author WHERE Name = :auname"); $stmt->bindParam(':auname', $tb_author); $stmt->execute(); $row = $stmt->fetch(); // try ( ){ // この部分がどうしたらいいか分かりません。 // }catch (PDOException $e) { // echo "Error!!: " . $e->getMessage() . "\n"; // ;exit() // } }
該当のソースコード
### 試したこと 以下は残りのフォームの4項目の部分です。(BOOKテーブルに直接送信されます) BOOKテーブルにAuthorIDがあるので、それが現状うまく値が入ってくれないので NULLとなりエラーが起きてしまっております。 if (!empty($_POST["bookname"]) && !empty($_POST["ori_bookname"]) && !empty($_POST["pub_year"]) && !empty($_POST["genre"]) && !empty($_POST["mili_sold"]) && !empty($_POST["lang"]) && !empty($_POST["bookcover"])) { $tb_bookname = testInput($_POST["bookname"]); $tb_ori_bookname = testInput($_POST["ori_bookname"]); $tb_pub_year = testInput($_POST["pub_year"]); $tb_genre = testInput($_POST["genre"]); $tb_mili_sold = testInput($_POST["mili_sold"]); $tb_lang = testInput($_POST["lang"]); $tb_book_img = testInput($_POST["bookcover"]); try { $stmt = $conn->prepare("INSERT INTO book(BookTitle, OriginalTitle, YearofPublication, Genre, MillionsSold, LanguageWritten, coverImagePath) VALUES (?, ?, ?, ?, ?, ? ,?)"); $stmt->execute(array($tb_bookname, $tb_ori_bookname, $tb_pub_year, $tb_genre, $tb_mili_sold, $tb_lang, $tb_book_img)); header('Location:../view/pages/addbook.php'); } catch (PDOException $e) { echo 'Database error! Please try it again!!!!'; exit(); } }
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー