Создание таблицы отслеживания в Codeigniter. Вставка данных с помощью Foreach

0

Я хочу создать таблицу отслеживания для отслеживания количества следящих за проектами каждый день. Таблица будет обновляться каждые 24 часа.

Результат будет выглядеть примерно так: последователи последовательности Instagram Line Line Chart

У меня сейчас два стола. Один для проектов и один для отслеживания Twitter.

Я хочу получить данные из таблицы проектов (идентификатор проекта, URL-адрес Twitter), превратить данные в переменные ($ ico_id, $ twitter_url), проанализировать количество подписчиков из Twitter и затем вставить все в таблицу отслеживания Twitter. И вставка должна быть выполнена для каждого проекта. В итоге у меня должно быть около 270 результатов каждый день.

Мне удалось вставить информацию об одном проекте с использованием foreach(), но он занял только первую строку и затем остановился.

Вот мой код:

<?php
class Tracker_model extends CI_Model {
    #insert follower count 
    public function twitter_followers(){
        $query = $this->db->get('icos');
        if($query->num_rows() > 0) {
            foreach($query->result() as $row) {
                $ico_id = $row->id;
                $twitter_url = $row->twitter;

                $page = @file_get_contents($twitter_url);
                $followers = @explode("followers_count&quot;:", explode(",&quot;friends_count", $page)[0])[1];  

                $data = array (
                    'ico_id'      => $ico_id,
                    'twitter_url' => $twitter_url,
                    'year'        => date("Y"),
                    'month'       => date("m"),
                    'month_word'  => date("F"),
                    'day'         => date("d"),
                    'day_word'    => date("l"),
                    'week'        => date("W"),
                    'followers'   => $followers
                );

                $insert_followers = $this->db->insert('twitter_followers', $data);
                return $insert_followers;
            }
        } else {
            return false;
        }
    } 
}
?>

И это результат: Таблица MySQL. Код (модель) должен выполняться каждые 24 часа, и я буду использовать cron для этого. Спасибо, что помогли!

Теги:
codeigniter
loops
cron

1 ответ

1
Лучший ответ

Ваша проблема связана с return. Он завершит цикл, поэтому будет вставлена только первая запись. Удалите этот оператор возврата. Затем выполните свой код:

<?php
class Tracker_model extends CI_Model {
    #insert follower count 
    public function twitter_followers(){
        $query = $this->db->get('icos');
        if($query->num_rows() > 0) {
            foreach($query->result() as $row) {
                $ico_id = $row->id;
                $twitter_url = $row->twitter;

                $page = @file_get_contents($twitter_url);
                $followers = @explode("followers_count&quot;:", explode(",&quot;friends_count", $page)[0])[1];  

                $data = array (
                    'ico_id'      => $ico_id,
                    'twitter_url' => $twitter_url,
                    'year'        => date("Y"),
                    'month'       => date("m"),
                    'month_word'  => date("F"),
                    'day'         => date("d"),
                    'day_word'    => date("l"),
                    'week'        => date("W"),
                    'followers'   => $followers
                );

                $insert_followers = $this->db->insert('twitter_followers', $data);               
            }
        } else {
            return false;
        }
    } 
}
?>
  • 0
    Такая ошибка новичка! Спасибо за указание на это. Кроме того, отслеживание выполняется аналогичным образом (речь идет о реальных приложениях)? Или это будет работать нормально?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню