2011-02-23 18 views
0

一個簡單的循環遍歷一個數組並刪除數據庫記錄...DB查詢在for循環的錯誤上第二環路(PHP,笨)

控制器:

foreach ($deletedTags as $deletedTag) { 
    $tagId = $this->tags_model->get_tag_id($deletedTag); 
    $this->tags_model->delete_tag_association_by_tag($workId, $tagId); 
} 

$deletedTags是一個數組,一個例子是:

Array ([0] => purple [1] => trees [2] => green) 

型號:

function get_tag_id($tag) { 
    $this->db->where('tags.name', $tag); 
    $query = $this->db->get(self::TABLE); 
    return $query->row()->id; 
} 

$deletedTags中只有一個值時,它工作正常。當有多個值時,模型功能get_tag_id($tag)在第二個循環中斷。它的錯誤行return $query->row()->id;有:

Undefined property: stdClass::$id 

任何想法爲什麼?

+0

在不知道$ deletedTags是什麼的情況下,完全回答您的問題幾乎是不可能的 - 它是單維還是多維數組還是它是一個對象? – BrynJ

回答

0

我解決了它。出於某種原因,它是錯誤的,因爲它只能在數據庫中找到數組中的第一個標記(即使其他標記存在於數據庫中)。我加了一個tag_exists檢查,一切正常...

foreach ($deletedTags as $deletedTag) { 
    if ($this->tags_model->tag_exists($deletedTag)) { 
     $tagId = $this->tags_model->get_tag_id($deletedTag); 
     $this->tags_model->delete_tag_association_by_tag($workId, $tagId); 
    } 
} 

奇怪。