-3

我想填充情绪的下拉列表并将其保存到我的数据库中并带有时间戳。同时将情绪与当前用户联系起来。我应该如何处理这个?

在我的数据库中,我有一个名为“checkin”的表,其中包括:ID、时间、FKMoods(情绪列表的外键)和 FKUsers(用户的外键)。

现在我在“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 回答