2016-08-07 8 views
0

htmlフォームから新しいsqlレコードデータを取得したいと思います。ユーザーは、送信前にhtmlフォームの上にレコードIDを表示できます。どのようにそれを実装するためにレコードを挿入する前にidを予約する方法

:前のHTMLフォームを送信

  1. をユーザーがHTMLフォームをキャンセルした場合、レコードIDは、次のレコード
  2. ため使用でき、他のユーザーは、他のとレコードIDを使用していませんHTMLフォームIはまた

自動インクリメントIDを使用することができる

  • は、私は[Laravelフレームワークに]、PHPとMySQLを使用します。

  • +1

    あなたのIDにそれらの間に穴がないようにしますか?ユーザーがフォームを入力したときにフォームを作成し、ユーザーが中止した場合にそれを削除して、使用されていないIDを作成する場合は、自動インクリメントキーを使用してください。 – Elentriel

    +1

    なぜ 'フォームが送信される前に表示されますか? –

    +0

    お客様は、IDをhtml形式で表示するよう求めています。 –

    答えて

    0

    並行性のため、正確に行うことはできません。たとえば、2人のユーザーが同時にフォームに入力したとします。

    ユーザー最初に開かれたフォームはid1に割り当てられ、ユーザーBは2番目に2となりましたが、ユーザーBは最初にフォームを完了し、id1はギャップになります。

    第2のシナリオ:ユーザーが「キャンセル」を押していない - 少なくとも一部のタイムアウトでIDがストールする。

    最も簡単な方法は、ユーザに前回のIDを前回のDBに表示することです。そのため、入力後に正確な自動インクリメントIDが表示されます。

    +0

    ありがとうございます。ユーザは紙文書にIDを書きたいと思っており、ユーザは間違いを犯している可能性があります。 –

    関連する問題