2011-01-14 147 views
0

所以我有一個數組,看起來像這樣:更新陣列

[0] => Array 
    (
     [image] => http://images0.jpg 
     [title] => 
    ) 

[1] => Array 
    (
     [image] => http://image1.jpg 
     [title] => 
    ) 

[2] => Array 
    (
     [image] => http://image2.jpg 
     [title] => 
    ) 

我這個數組保存到數據庫,白水,當我沒有設置例如鍵2,從這個數組如何刪除記錄從數據庫至今沒有設置。?

+0

我不會推薦這種方法用於從數據庫中刪除的項目。否則,如果你在數組中查找什麼是「不」,最終會刪除所有行! – 2011-01-14 13:43:05

+0

那麼最好的方法是什麼?我想比較現有的項目與數組並刪除不存在的元素。我沒有想法。你能給我一些嗎? – Jasiufila 2011-01-14 14:53:40

回答

1

我會做這種方式:

添加的形式額外字段類型複選框,可以添加一些JavaScript爲更好的用戶體驗。

的代碼可能是這樣的:

foreach($files as $key=>$file){ 
    echo '<div class="file" id="file_'.$key.'">'; 
    $this->Form->input("$key.title"); 
    $this->Form->input("$key.image"); 
    $this->Form->input("$key.deleted", array('type'=>'checkbox')); 
    echo '</div>'; 
} 

當複選框用戶點擊,警告「你肯定」會出現,如果用戶點擊「是」,然後周圍的DIV #file_XXX可以設置爲隱藏。

這基本上會隱藏div,但是當用戶提交表單時字段將會出現。

然後您可以使用saveAll()保存數據,稍後刪除已刪除的記錄= 1。

基本上你的陣列將是這樣的:

[0] => Array 
    (
     [image] => http://images0.jpg 
     [title] => 
     [deleted]=>0 
    ) 

[1] => Array 
    (
     [image] => http://image1.jpg 
     [title] => 
     [deleted]=>1 
    ) 

[2] => Array 
    (
     [image] => http://image2.jpg 
     [title] => 
     [deleted]=>0 
    ) 

的解釋不是很詳細,但希望這是可以理解:)