1

わかりにくいタイトルで申し訳ありませんが、ここでは何も起こりません。

ユーザーテーブルに2種類のユーザーがありtraineeますcoach

Traineeを追加できcoach、データベース上に作成されるcoachものを確認できます。trainee

coachこれは、 1しか持てない場合は単純で、のuserIDを。という列にtrainee格納するだけです。ただし、複数のユーザーがCoachを追加できる必要があるため、1つよりもはるかに多くのuserIDを含めることができます。のように。traineeiscoachofiscoachof34,72,345,87,97

iscoachofしたがって、これが新しい値で列を更新する現在のコードです。

 $fd = $_POST['coach'];
 $user = $_SESSION['login']['id'];
 $query = "UPDATE users SET iscoachof='$user' WHERE id='$fd'";
 $add = $db->prepare($query);
 if($add->execute()){
   echo "Lisätty";
 }
 else{
 echo "Ei lisätty";
 } 

現在の値を上書きするだけであり、これはオプションではありません。

だから、私は次のようなことをする必要があります

$currentval =  "SELECT iscoachof FROM users WHERE id='$fd';
$do = $db->prepare($currentval);
$do->execute();
while($row = $do->fetchObject()){
$currentval = $row->iscoachof;
}

更新する前に現在の値を取得しますが、後でこのようなクエリで使用できるように、どのように保存すればよいですか?$data

$q = "SELECT * FROM diaries WHERE UserID='$data' AND date='$today'";
$do = $db->prepare($q);
$do->execute();

それで、基本的に、それを配列に保存し、後で値を抽出するときにデータベースに保存することは可能ですか?

4

3 に答える 3

3

データベース設計をもう一度確認することをお勧めします。コーチと研修生の関係を保存する明確なテーブルを用意するのが最善です。そうすれば、必要なときにいつでもテーブルに追加/テーブルから削除できます。

$fd = $_POST['coach'];
$user = $_SESSION['login']['id'];
$query = "INSERT into coaches SET coach='$fd', user=$user";
$add = $db->prepare($query);
if($add->execute()){
 echo "Lisätty";
}
else{
echo "Ei lisätty";
} 

ただし、POST変数が入ってくることに注意してください。そうしないと、SQLインジェクションが可能になります。

于 2013-01-24T11:48:08.593 に答える
1

Here You go:

Create another table, e.g. coach_to_trainee

coach_id INTEGER
trainee_id INTEGER

both to be the primary key.

Then You could simply add a new pair of couch_id <- trainee_id. In this case this would be a MANY TO MANY relation supposing one trainee could have multiple coaches while one coach could be assigned to many trainees...

And to answer Your question in bold: YES, it is possible.

EDIT: SQL to create the table:

CREATE TABLE `coach_to_trainee` (
  `coach_id` INTEGER NOT NULL,
  `trainee_id` INTEGER NOT NULL,
  PRIMARY KEY (`coach_id`, `trainee_id`)
)
于 2013-01-24T11:54:27.823 に答える
-2

あなたのDBとアーキテクチャはわかりませんが、すべてのコーチの研修生のリストを保存する代わりに、逆に各研修生にコーチを割り当てる方が簡単ではないでしょうか。

そうでない場合は、コンマ区切りの値を保存し、後でPHPで解析できます

編集:しかし、他の人が言ったように、あなたは便利な1対多の関係を持つことができるので後者のことをする必要はないので、各コーチと各ユーザーのテーブルを用意し、次に各ユーザーにコーチを割り当てます

于 2013-01-24T11:50:10.003 に答える