2009-06-02 9 views
1

私は、入力された値に対して複数のテーブルをmysqlで使用しています。ページの1つに、余分な情報を追加したい場合に+をクリックして余分な行を追加できるオプションが必要なフォームがあります。任意の数の行を追加できます。Jquery - > php - > mysqlと動的フォームフィールド

ユーザが+をクリックすると、jqueryとphpが現在のユーザIDをデータベーステーブルの行に挿入します。詳細情報が入力されると、これが更新されます。

問題は、特定のIDの行数を挿入する方法です。データが入力されると、ブラーイベントがデータベースを更新するためのPHPコードにデータを送信します。しかし、私が持っている問題は、すべての行をその特定のユーザーIDで更新し、最新のものではないということです。

新しい行に入力されたデータを取得してデータベースを更新するにはどうすればよいでしょうか?ユーザーID値ではなくID値を使用する必要があると思います。それをするの?あなたが与えることができる任意の提案のための

おかげで、この1つは、現在、私の心を曇らせている...

答えて

1

まあ、私はあなたのIDとフィールドIDのペアを使用する必要があると思います。 filedidのみを編集するには十分ですが、すべてのユーザーフィールドをリストする必要がある場合は、別の参照が必要になります。

1

あなたはあなたではなく、外国よりも更新しているテーブルの主キーを、使用する必要があることを述べるとき、あなたは正しいですキー(あなたの場合はUserId)はあなたのテーブルで何回も出現します。これにより、期待した行が更新されます。

代わりに、更新する行を絞り込むこともできます。たとえば、最も新しいID/IDを更新するか、レコードを一意にするフィールドの組み合わせを使用するなどです。ただし、主キーを使用することは、問題を解決する最善の方法です。

1

はい、ユーザーIDだけでなく、挿入する行のID値が必要です。あなたがしたいと思うのは、をクリックしたときに挿入を行うAjaxスクリプトからmysql LAST_INSERT_ID()を渡し、そのIDを後で行を更新するために使用する情報にプッシュすることです。

+0

LAST_INSERT_ID()をメインフォームに戻すにはどうすればよいでしょうか? $ _SESSIONは解決策ですか? – Choog

+0

私は、スクリプトからJSONまたはXMLとして渡すことを考えました。 – chaos

1

ええ、あなたの最善の策は、作成されたすべての行に対して一意のIDをmysqlに返すことです。フォームの行を編集してIDを送信するときは必ず確認してください。これで、一度に1行を編集できます。

+0

作成されたすべての行に対して返される一意のIDを実際に取得する方法の提案がありますか?私はあなたがどこから来ているのかを見ていますが、それをどのように実践するかはわかりません。 – Choog

+0

することができます: - ";を選択last_insert_id();"挿入クエリの最後に最後に挿入されたIDを取得します。 - あなたはmysql_insert_id()を呼び出してIDを取得できます。 - あなたはmysqli-> insert_id()を呼び出してIDを取得できます。 [http://www.php.net/manual/en/function.mysql-insert-id.php]と[http://www.php.net/manual/en/mysqli]のphpリファレンスを確認してください。 .insert-id.php] idをjsonにjqueryに送り返し、[http://docs.jquery.com/Ajax/jQuery.ajax]を参照してください。 次に、あなたが渡したすべてのアップデート更新する行のID – justlost