基本的に私は複数の場所システムを持ち、ユーザーはその場所に割り当てられています。ログイン中にログインする場所(データベース)が選択され、選択された場所が割り当てられた場所と等しい場合は、続行できます。そうでない場合、エラーが表示されます。これはすべて正常に動作しますが、ユーザーごとに複数の場所があります。単一のSQLフィールドから配列に値を追加する
私のSQLテーブルには、location
という1つの場所が含まれています。コンマで区切られた別の場所を追加すると、ユーザーがログインすると列に値を格納した後に値(つまり:location1、location 2)を格納する方法があります。
SQLの例だから、場所の行は技術的にここで2つの値を持っているでしょう...
SELECT location FROM users WHERE userid = 25
を使用すること。 これを配列に入れたら、inarray()
関数を使ってチェックを行うことができます。
各ユーザーに複数の場所がある場合は、別々のテーブルに入れてみましょう。たとえば、 'id、user_id、location'フィールドを持つ' users_locations'テーブルです。 – Anton
複数の特異な場所を繰り返してはいけない場合は参照整合性が失われます。場所の割り当てをManyToMany関連テーブルに変更できます。ユーザーIDと場所IDを格納する 'users_locations'という名前です。次に、 'join l'を実行します。SELECT l.name FROM users_locations AS ul JOIN locations AS l ON l.id = ul.location WHERE ul.user = 25'これは、ユーザーがいたすべての場所を生成します割り当てられた。 – fyrye
シンプル。コンマで区切って別の場所を追加しないでください。正規化を参照してください。 – Strawberry