Php MySQL&;jQuery:在数据库中存储动态生成的内容
我有一个动态表单,它创建一些将生成值的输入,并应保存到数据库中。每组值应分别保存在数据库中称为“教育”的单个字段中: 应按如下方式存储:Php MySQL&;jQuery:在数据库中存储动态生成的内容,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我有一个动态表单,它创建一些将生成值的输入,并应保存到数据库中。每组值应分别保存在数据库中称为“教育”的单个字段中: 应按如下方式存储: +--------+---------+----------+--------+--------+--------+--------+-----+ | id | name | Education | +--------+---------+----------+--
+--------+---------+----------+--------+--------+--------+--------+-----+
| id | name | Education |
+--------+---------+----------+--------+--------+--------+--------+-----+
| 100 | John | [Harvard, Marketing,2009,2014] [MIT,CS,2005,2009] |
+--------+---------+----------+--------+--------+--------+--------+-----+
| 101 | Daniel | [TEC, Marketing,2009,2014] [Standford,CS,2001,2005]|
+--------+---------+----------+--------+--------+--------+--------+-----+
教育领域最多可以有10组值,我只展示了2组
请查看JSFIDLE以了解其实际工作原理:
- 当编辑单个值集并仅更新给定值集将其保存到数据库中时,如何将其存储到数据库中
- 还有,这是最好的方法吗
- 这不是解决此问题的最佳方法。你最好做两张桌子
表格用户:
+--------+---------+
| id | name |
+--------+---------+
表教育:
+--------+----------+------------+-------+-----+------+
| id | location | discipline | start | end | user |
+--------+----------+------------+-------+-----+------+
作为education.user,保存用户表中的外键users.id。一方面,输入表单的实现更加复杂,但您对每个用户的入口没有限制,也没有太多的数据库开销。这不是解决此问题的最佳方法。你最好做两张桌子 表格用户:
+--------+---------+
| id | name |
+--------+---------+
表教育:
+--------+----------+------------+-------+-----+------+
| id | location | discipline | start | end | user |
+--------+----------+------------+-------+-----+------+
作为education.user,保存用户表中的外键users.id。一方面,输入表单的实现更为复杂,但您对每个用户的入口没有限制,也没有太多的数据库开销。在设计数据库时有一种称为规范化的做法,它将引导您找到最佳方法。根据您的问题和JSFIDLE,您将得到两个独立的数据库表 例如:
tbl\u用户
:将包含以下字段
userID
userName
然后您将有另一个表Ex:tbl_Education
,其中包含一些字段,例如
record_id
userID
schoolName
在此表中,您可以在userID
字段中设置特定的用户id,该字段必须与tbl_用户的userID
字段相匹配,然后在schoolName
字段中设置他们就读的单个学校。如果他们在多所学校就读,他们将在tbl_教育
表中有多个条目,但在tbl_用户
表中只有一个条目。如果需要检索数据,可以对两个表执行SQL查询,并对User\u id
字段执行join
。这将导致返回多个记录,但包含所需的所有数据
任何特定于他们教育的特定部分的信息都将进入tbl_教育
表,任何特定于用户的信息(头发颜色、眼睛颜色、身高等)都将进入tbl_用户
表
Ex SQL查询:
SELECT tbl_Users.userID, tbl_Users.userName, tbl_Education.schoolName
FROM tbl_Users, tbl_Education
WHERE tbl_Users.userID = tbl_Education.userID;
WHERE子句本质上是两个表之间的连接。有很多方法可以编写这个查询,我使用的方法在视觉上似乎是最容易看到发生了什么
这里是维基百科的链接,用于规范化,让您开始学习。
在设计数据库时有一种称为规范化的做法,它将引导您找到最佳方法。根据您的问题和JSFIDLE,您将得到两个独立的数据库表
例如:tbl\u用户
:将包含以下字段
userID
userName
然后您将有另一个表Ex:tbl_Education
,其中包含一些字段,例如
record_id
userID
schoolName
在此表中,您可以在userID
字段中设置特定的用户id,该字段必须与tbl_用户的userID
字段相匹配,然后在schoolName
字段中设置他们就读的单个学校。如果他们在多所学校就读,他们将在tbl_教育
表中有多个条目,但在tbl_用户
表中只有一个条目。如果需要检索数据,可以对两个表执行SQL查询,并对User\u id
字段执行join
。这将导致返回多个记录,但包含所需的所有数据
任何特定于他们教育的特定部分的信息都将进入tbl_教育
表,任何特定于用户的信息(头发颜色、眼睛颜色、身高等)都将进入tbl_用户
表
Ex SQL查询:
SELECT tbl_Users.userID, tbl_Users.userName, tbl_Education.schoolName
FROM tbl_Users, tbl_Education
WHERE tbl_Users.userID = tbl_Education.userID;
WHERE子句本质上是两个表之间的连接。有很多方法可以编写这个查询,我使用的方法在视觉上似乎是最容易看到发生了什么
这里是维基百科的链接,用于规范化,让您开始学习。
解决方案有两个甚至三个非常不同的部分。首先,需要使用PHP将数据存储在数据库中。Javascript/JQuery无法直接写入数据库。然后,您应该将表单数据发布到PHP。您可以在不使用Javascript的情况下首先实现这一点。如果这样做有效,您可以使表单“Ajax增强”,以便在后台发布数据,并使用结果更新页面。总的来说,这个问题既广泛又重复。这已经被讨论过无数次了。这是一个多方面的问题。您需要一些服务器端语言来配合此操作,并知道如何使用该语言访问数据库。@GolezTrol感谢您的回答,但您为什么说它可能是重复的?它甚至不是同一个问题,也不是同一个代码,等等。如果你仔细观察,你会发现这不是重复的。关于你的表设计,最重要的是它不是第一范式(1NF)。在1NF中,数据库中的每个单元格都包含1个值,并且只有1个值。它们是“原子的”。这就是为什么下面每个人都建议你把它分开。看看这里:解决方案有两个甚至三个非常不同的部分。首先,需要使用PHP将数据存储在数据库中。Javascript/JQuery无法直接写入数据库。然后,您应该将表单数据发布到PHP。您可以在不使用Javascript的情况下首先实现这一点。如果