我试图将jquery的可排序列表值插入到MySql中。在插入时,我在MySql中循环存在问题。
我已经整理了像这样的东西
-------------
Sorted List
-------------
did-1
fid-1
fid-2
fid-3之后,我使用了“序列化”来获取这些排序列表
$('.sortable').sortable({
connectWith: '.sortable',
tolerance: 'pointer',
update: function (event, ui) {
$('#add_list').click(function(){
var data = $('#drop_list1').sortable('serialize');
$.ajax({
data: data,
type: 'POST',
url: 'addnewlist.php',
success: function(data){
}
});
});
}我想要的是--对每一个'did‘进行多次插入,应该插入一个'fid’。在我的MqSql - '(did-1,fid-1)(did-1,fid-2)(did-1,fid-3)‘
我已经在我的PHP中尝试过这个。
foreach($_POST['doc'] as $doc)
{
for($i=0;$i<count($_POST['doc']);$i++)
{
$form=$_POST[$i]['form'];
echo $sql="INSERT INTO addnewdoc(doc_id,form_id) VALUES ($doc,$form)";
$res=parent::_executeQuery($sql);
}
}发布于 2014-12-04 08:49:59
如果我正确地理解了这一点,那么您需要遍历文档,然后遍历每个文档的表单。这样行吗?
foreach($_POST['doc'] as $doc)
{
foreach($_POST['form'] as $form)
{
echo $sql="INSERT INTO addnewdoc(doc_id,form_id) VALUES ($doc,$form)";
$res=parent::_executeQuery($sql);
}
}最后运行每个组合的insert查询。最好将所有的值构建到一个查询中,然后执行一次。例如:
$sql = "INSERT INTO addnewdoc(doc_id,form_id) VALUES ";
$values = Array();
foreach($_POST['doc'] as $doc)
{
foreach($_POST['form'] as $form)
$values[] = "($doc,$form)";
}
$sql .= join(',', $values);
$res=parent::_executeQuery($sql);它将所有值收集到一个数组中,然后将每个值连接到一个由逗号分隔的字符串中。然后,可以运行单个insert查询来插入所有值。
https://stackoverflow.com/questions/27288942
复制相似问题