2012-03-08 27 views
0

を使用して、データベース内の2つの別々のテーブルにhtmlフォームデータを送信します。これを行う最善の方法は何でしょうか?私は両方のテーブルに挿入する必要があり、それは私にとってより困難です。オーナメントテーブルのornament_idは明らかにPKであり、ornament_to_sizeテーブルのPKは、複合キーとしてornament_idおよびsize_idである。は、私はこれらの2つのテーブルを持っているSQLとPHP

飾りが複数の大きさそうのように持つことができるので、サイズ表に飾りがある理由は次のとおりです。

ornament_id = 3 & size_id = 1 
ornament_id = 3 & size_id = 2 
ornament_id = 3 & size_id = 3 

私はちょうど方法は、実際のコード

+0

入力をフォームに動的に追加して、フォームの1回の送信で複数のornament_to_size行を入力できるようにする方法があります。 (あるいは、単にornament_to_sizeの行を3つだけ提出したいと思っていたら、ornament_to_sizeの行に3つの静的な入力セットを置くことができます。)size_idは本当にidですか?それは別のテーブル(おそらく名前付きの名前)へのIDですか? – ghbarratt

+0

ああ、申し訳ありませんが、私はサイズIDに対応する各サイズの名前を持つサイズテーブルを持っていると言っていました。また、各装飾品は、異なる寸法測定値を有する異なるサイズを有することができる。したがって、1つの装飾品は「小物」と分類でき、別の装飾品にすることもできますが、どちらも異なる寸法を持つことがあります – user1227124

+0

さて、基本的には前述の方法と同じになります。同様の形式のさまざまな関連サイズ(多分もっと多くのサイズのために動的に追加することができる入力を持つこともあります)。サーバー側では、装飾の情報を収集し、最初に挿入して、ちょうど挿入された装飾のornament_idを得ることができます(おそらく['lastInsertId'](http://pt2.php.net/manual/en /pdo.lastinsertid.php))で、装飾サイズの行を挿入する必要があります。これは質問に答えますか? – ghbarratt

答えて

1
ないだろうかを知りたいです

サイズ表はすでにそれに値を持っている場合は、ユーザがデータを挿入しましょうするには、2つの選択肢があります:

  • を使用すると、ユーザーは単一の新しい値を追加できるようにしたい場合は選択

  • チェックボックスフィールドユーザーがPHPは 配列として使用できるように「[] checkboxname」としてそれに名前を付けることを忘れないでください1、
    その後、より挿入したい場合。

どちらの場合も、サイズのIDを値として使用します。

  • 飾りテーブルに挿入し、ストレートの後にこれはPDO関数である( におけるlastInsertId()クエリを実行するが、あなたはそれを行うことができます。Dbを挿入する部分で フォームデータを解析する必要があります、そして実行mysqlの も)を実行し、結果をvarに保存します。
  • ornament_to_sizeテーブルへの後続のクエリを実行します。 というバリデーションをornament_id値として保存しました。

あなたは、チェックボックスを使用することを選択した持っている場合、あなただけのPHPはPOSTを読んでどのようにすべての新しい行の感謝を挿入する$ _POST [「checkboxname []」]とのforeachを実行できることを覚えておいてください

+0

あなたのお手伝いをしてくれてありがとう。私はちょっとそれを得る。私はそれを調べなければならないだろう。 – user1227124

関連する問題