2012-06-04 23 views
1

我使用javascript和php創建了一個表單。我已經使用像向數據庫中插入數組的順序

<input type="textbox" name="listid" value="" /> 

一個文本框,我會得到一個數組一樣4,6,12,9等從$ _ POST [「listid」];我可以使用serialize將此值插入到數據庫中,並通過反序列化來檢索它。但我需要做的是,爲listid = 4插入1,爲listid = 6插入2,爲listid = 12插入1,以及爲listid = 9插入4。我已經使用

$count=0; 

foreach($_POST['listid]' as $id) 
     { 

      $count++; 
    $db->update('lists',array('order'=>$count),'id ='.$db->quote($id)); 

     } 

但它不工作。只更新第一個值(listid = 4)

我需要做什麼?任何人請幫忙?

謝謝!

回答

0

您將不會收到來自$ _POST數組['listid],你會得到一個字符串。首先將該字符串拆分成一個數組,然後執行邏輯。

$arrListId = split(',', $_POST['listid]); 
0

試試這個。

<?php 
$count=0; 
foreach($_POST['listid'] as $id) 
     { 

      $count++; 
    $db->update('lists',array('order'=>$count),'id ='.$db->quote($id)); 

     } 

?> 

Remove $ count = 0;出的for循環

+0

感謝您的答覆.. :)但它不工作:( – NewPHP

+0

好吧,有什麼錯誤就要到了。 –

+0

添加順序= 1〜listid = 4 only..only插入第一個.. – NewPHP

0

你可以嘗試

$count=0; 
foreach($_POST['listid]' as $id) 
{ 
    $count++; 
    $data = array('order'=>$count); 
    $db->update('lists',$data,$this->_db->quoteInto('id = ?',$id)); 
} 

我希望這可以工作