2014-12-04 24 views
2

我想將jQuery的可排序列表值插入到MySql中。我在插入時遇到了在MySql中循環的問題。
這樣
插入jQuery的可排序列表到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){      
      } 
     }); 
    }); 
} 

我要的是 - 多插入每一個「做」 ,應該插入'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); 
    } 
} 
+0

值的順序是否顯着? – Strawberry 2014-12-04 08:21:59

+0

確實只能有一個。 FID可以有多個條目,並可以有任何訂單 – Matarishvan 2014-12-04 09:38:59

回答

1

如果我正確地理解了這一點,您希望遍歷文檔,然後遍歷每個文檔的表單。這是否會起作用?

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); 
    } 
} 

這最終會爲每個組合運行插入查詢。你最好將所有的值構建成一個查詢,然後再執行一次。例如:

$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); 

即集的所有值到一個數組,然後它們中的每加入到由逗號分隔的字符串。然後,您可以運行一個插入查詢來插入所有值。

+0

supposse,如果我有'did-1,fid-1'在我的排序列表中,我收到多個條目。我的意思是多個插入查詢正在執行 – Matarishvan 2014-12-04 09:37:36

+0

你應該打印出$ _POST數組,並確保你的數組索引是正確的。 – phansen 2014-12-04 12:09:24