Javascript 使用基于以下数组的多个Update语句
我有一个名为Javascript 使用基于以下数组的多个Update语句,javascript,php,mysql,arrays,ajax,Javascript,Php,Mysql,Arrays,Ajax,我有一个名为sched的表,需要根据需要进行更新 目前,我创建了一个HTML输出,输出sched表的当前值,供用户根据需要进行编辑。我还准备了脚本来收集这些更改,并通过ajax/PHP发送它们来更新上述db表 我已经发送了两个单独的数组,并使用array\u combine() 发送到PHP并通过PHP组合的结果示例: [locationID_1] => 4~West [instructorID_1] => 12~Kasey
sched
的表,需要根据需要进行更新
目前,我创建了一个HTML输出,输出sched
表的当前值,供用户根据需要进行编辑。我还准备了脚本来收集这些更改,并通过ajax/PHP发送它们来更新上述db表
我已经发送了两个单独的数组,并使用array\u combine()
发送到PHP并通过PHP组合的结果示例:
[locationID_1] => 4~West
[instructorID_1] => 12~Kasey
[roomID_1] => 7~Studio 1
[classtypeID_1] => 9~Yoga
[weekdayID_1] => 5~Friday
[time_1] => 05:25
[start_date_1] => 2014-09-01
[end_date_1] => 2014-09-27
[locationID_12] => 2~Oaks
[roomID_12] => 2~Body Room
[instructorID_12] => 3~Susan
[classtypeID_12] => 13~Fitness
[weekdayID_12] => 2~Tuesday
[time_12] => 05:25
[start_date_12] => 2014-09-03
[end_date_12] => 2014-09-28
因此,对于最后一个键值对,可以将列名视为每个键的第一部分(对于最后一个条目):
因此,为了更详细地介绍这个示例,[]括号内的数字表示要更新的表行的id(12,sched)
用下划线分隔的位是列的名称(结束日期)
分配给每个键的值都是在ajax post之前使用从其自己的db表中检索到的自己的id进行分段的
我的问题是如何最好地使用所描述的方法更新目标db表中任意数量的行
我知道在javascript中显示这么多db信息会有很多安全问题,但这更像是一个有趣和学习的项目(特别是因为我在自学)
要友善,但要有信息——我很乐意学习和进步
谢谢
根据我的理解,您需要创建动态更新语句。那么为什么不创建一个简单的服务器端页面并将数据发布到该页面,然后使用下面的查询呢
INSERT INTO sched({COLUMN_NAMES}) VALUES({COLUMN_VALUES}) ON DUPLICATE KEY UPDATE;
希望这对你有帮助 我建议使用如下数据结构,而不是组合数组。从人和算法的角度来看,数据更干净、更容易访问
$sched = array
(
1 => array
(
'locationID' => '4~West',
'roomID' => '7~Studio 1',
'instructorID' => '12~Kasey',
'classtypeID' => '9~Yoga',
'weekdayID' => '5~Friday',
'time' => '05:25',
'start_date' => '2014-09-01',
'end_date' => '2014-09-27'
),
12 => array
(
'locationID' => '2~Oaks',
'roomID' => '2~Body Room',
'instructorID' => '3~Susan',
'classtypeID' => '13~Fitness',
'weekdayID' => '2~Tuesday',
'time' => '05:25',
'start_date' => '2014-09-03',
'end_date' => '2014-09-28'
)
);
然后像这样循环:
foreach ($sched as $id => $data)
{
$query = "UPDATE sched SET ";
$sets = array();
foreach ($data as $k => $v)
$sets[] = "$k = '$v'";
$query .= implode(', ', $sets) . " WHERE schedID = $id";
// do something with query
}
你为什么要合并?如果这是一个多维数组,应该会更容易
foreach ($sched as $id => $data)
{
$query = "UPDATE sched SET ";
$sets = array();
foreach ($data as $k => $v)
$sets[] = "$k = '$v'";
$query .= implode(', ', $sets) . " WHERE schedID = $id";
// do something with query
}