これを次のように設計します。
それらについて必要なすべてのデータを含むフォームを作成します。ユーザーの ID を指定すると (すぐに取得します)、データベースからユーザーのレコードを照会し、ユーザーが保存したすべての情報を表示するように PHP を記述します。彼らは好きなように変更を加え、フォームを送信できます。これにより、データベース内のレコードが更新され、次回ページを表示したときに新しい情報が表示されます。
フォームが送信されると、まずそれらが既に存在するかどうかを確認する必要があります。存在する場合はレコードを更新し、存在しない場合は挿入します。これは PHP で行うことができますが、素敵な mysql ステートメントを介して行うこともできます (重複キーの更新時に挿入...)。
ユーザーがアカウントを作成すると、ログイン/ユーザー名がデータベース内の一意の ID に関連付けられます。彼らがこれを (再度ログインして) 確認すると、その ID がセッション変数に渡されるため、いつでもデータベースから簡単にデータにアクセスできます。
最後に、これを行っているときは、準備済みステートメントを使用してデータベースとの間でデータを取得することをお勧めします。PDO を自分でお勧めします。それは素晴らしいことです。データベース間の互換性などがあります。優れたセキュリティを検討している場合は、パスワードを直接保存するのではなく、ソルトして、その場で検証されるハッシュを保持することをお勧めします。半固有のトークンをすぐに挿入して、パスワードを忘れた場合に送信して、リンクを介して確認できるようにすることをお勧めします。また、ユーザー名/ログインを Cookie に保存することは問題ありませんが、パスワードをそこに保存しないでください。実際、パスワードをセッションに保存しないでください。パスワードが確認されたら、何らかのサインインフラグを保存し、それに対してチェックしてください。
編集:
プロセスの開始時にユーザーに一意の ID を割り当てることができる場合 (たとえば、ユーザーから電子メールを受け取るなど)、一意の ID を与えることができます (または、ピンチで電子メール アドレスを使用します)。その後、最初から最終行にデータを挿入できます。Mysql はinsert ... on duplicate key update
構文を提供します。つまり、渡された各ページでデータを行に挿入し、いつでも参照することができ、おまけとしてメールアドレスのような一意のキーを使用するため、データに関連付けることができます。一部のデータを入力するには、サイトを離れて後で戻ってきて、残りを入力します。