-3

ムードのドロップダウン リストを作成し、タイム スタンプを付けてデータベースに保存したいと考えています。同時に、気分を現在のユーザーと結び付けます。これにどのようにアプローチすればよいですか?

私のデータベースには、ID、Time、FKMoods (気分のリストへの外部キー)、および FKUsers (ユーザーへの外部キー) を含む「checkin」というテーブルがあります。

現在、「page.php」に checkin というフォームがあります。

<form id="checkin" action="checkin/checkin.php" method="POST">
<label for="checkinMood">Select your current mood :</label>
<select id="checkinMood" class="SelectMood"></select><br />
<input type="submit" id="checkin-button" value="Update!" />
4

3 に答える 3

0

これを達成するための手順

  1. ムード テーブルからムードを選択する
  2. 結果をループして選択入力に入れる
  3. 送信時に、指定された気分をユーザー テーブルに更新します
于 2012-12-06T16:15:38.860 に答える
0

html オプション リストをデータベースに保存しないでください。オプションを変更したいときに編集するのは大変です。次のようにムードのリストを保存します。

CREATE table moods
mood_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
mood VARCHAR(45);

オプション リストを作成するには、ムード テーブルにクエリを実行し、結果をループしながらオプションを作成します。

<option value='{$mood["mood_id"}'>{$mood["mood"]}</option>

ユーザーの気分を保存するには、usersテーブルをmood_id.

于 2012-12-06T16:19:05.393 に答える
0

結合されたSQLクエリを実行して、最初に他のテーブルから外部キー付きの値/行をプルします-mysqlを使用していると仮定して-誰もが知っている非常に基本的な関数を使用します(mysqliを使用しているか、pdoまたはlibを使用しているかどうかには触れません):

SELECT * FROM checkin c LEFT JOIN listofmoods lm ON c.FKMoods = lm.FKMoods LEFT JOIN listofusers lu ON c.FKUsers = lu.FKUsers ORDER BY c.ID ASC

(または、ソートしたい)

これで、必要なフィールドがすべて揃いました。次に、mysql fetch を実行して、次のようなリストを作成します。

$query=mysql_query(-thequery listed above-);

while($fetch=mysql_fetch_assoc($query))
{

   $moodselect.='<option value="'.$fetch['FKMoods'].'">'.$fetch['whateverfieldlabelthemoodnameyouhaveonmoodstable'].'</option>';


}

これにより、必要なオプションがそこにある $moodselect が表示されます。次に、これを例にある選択に押し込むことができます。

おそらく、フォームの非表示フィールドにユーザー ID を入力する必要があります。または、ユーザー システムがセッションからユーザーを自動的に認識する場合は、フォームが checkin.php に投稿されたときにそれを使用できます。

于 2012-12-06T16:21:15.627 に答える