Запрос БД для ошибок цикла во втором цикле (PHP, Codeigniter) - PullRequest
0 голосов
/ 23 февраля 2011

Простой цикл проходит по массиву и удаляет записи базы данных ...

Контроллер:

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

Есть идеи, почему?

1 Ответ

0 голосов
/ 23 февраля 2011

Я решил это.По какой-то причине это ошибка, потому что он может найти только первый тег в массиве в БД (даже если другие теги существуют в БД).Я добавил проверку 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);
    }
}

Странно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...