私は約 1 年間コーディングをしており、現在ポートフォリオ (レシピ Web サイト) の作成に取り組んでいますが、行き詰まっていて、どのように進めればよいかわかりません。
私の問題は、テーブル A (挿入されているかどうかに関係なく) から自動インクリメントされる材料 ID をテーブル B に挿入する方法を見つける必要があることです。
レシピが送信されると、次の MySQL クエリを使用して、材料テーブルに送信された材料があるかどうかを確認するコードを設定します。
リーリー私は最初、挿入後のトリガーを使用しようとしましたが、成分がすでにデータベースに存在し、新たに挿入されていない場合、このアプローチは機能しないことに気付きました。したがって、私のアプローチはリファクタリングする必要があるかもしれないと思います。
私の目標は、レシピを送信するときに、次のコードを使用して材料を配列にコンパイルすることです:
リーリー次に、MySQL クエリを実行します。成分がまだ存在しない場合は、テーブル A に挿入します。すでに存在する場合は、無視します。これら 2 つのオプションの後、材料の自動インクリメント ID がテーブル B に挿入されます。問題をさらに複雑にするために、recipe_id はテーブル C (その他のさまざまなレシピ情報を含む) から抽出され、amount はユーザーが入力フィールドに入力した値 (配列に変換)、unit_id はユーザーによって選択されたものになります。ユーザーおよびデータベースで事前定義された測定単位の事前定義セットに対応する単位のセット (配列にも変換されます)。これら 2 つの配列は、上記の JavaScript コードを使用して配列に作成されます。
表 A は次のとおりです:
id | ###要素###|
---|---|
2 | ###小麦粉###|
表 B は次のとおりです: |
レシピ_id
成分_id | 1 | 45 | ||
---|---|---|---|---|
1 | 2 | 76 | 4 | |
2 | 更新方法 | これがより良いアプローチであることを願っていますが、if ステートメントの false 結果を |
を実行する方法を理解するのに苦労しています。難しいです。これにより、材料の id が
recipe_ingredients の ingredient_id
テーブル列に追加されるためです。
レシピ.js
リーリー
routerRecipes.js
ああああ
P粉3669463802023-09-12 10:45:04
レシピの各材料:
材料から ID を選択 WHERE 材料 = ?
ingredient_id
は返された idINSERT INTO 材料 (成分) VALUES (?)
を実行し、ingredient_id
を割り当てられた自動インクリメント IDingredient_id
値を使用して、INSERT INTO Recipes