Цикл foreach, показывающий только последнюю запись в codeigniter и получающую активные записи, которые были зарегистрированы в течение 5 минут назад - PullRequest
0 голосов
/ 05 июня 2018

Привет всем, я пытаюсь получить активных пользователей сеанса в codeigniter. Поэтому я храню все свои сеансы в базе данных и имя таблицы с именем ci_sessions, и я получил данные пользователя из таблицы ci_sessions, и я пытаюсь получить имя пользователя из данных через foreach, ноя получаю только последнего активного пользователя.

Вот мой код:

<?php
$query = $this->db->query('SELECT * FROM ci_sessions');

foreach ($query->result() as $row) {
    $session_data = $row->data;

    $return_data = array();  // array where you put your "BLOB" resolved data

    $offset = 0;
    while ($offset < strlen($session_data)) 
    {
        if (!strstr(substr($session_data, $offset), "|")) 
        {
            throw new Exception("invalid data, remaining: " . substr($session_data, $offset));
        }
        $pos = strpos($session_data, "|", $offset);
        $num = $pos - $offset;
        $varname = substr($session_data, $offset, $num);
        $offset += $num + 1;
        $data = unserialize(substr($session_data, $offset));
        $return_data[$varname] = $data;  
        $offset += strlen(serialize($data));
    }    
}
echo $return_data['user_name'];

?>

Может ли кто-нибудь помочь мне, где я сделал ошибку.

Заранее спасибо.

1 Ответ

0 голосов
/ 05 июня 2018

Небольшая ошибка, которую вы сделали

<?php
$query = $this->db->query('SELECT * FROM ci_sessions');
$return_data = array();  // array where you put your "BLOB" resolved data
foreach ($query->result() as $row) {
   $session_data = $row->data;

   $offset = 0;
   while ($offset < strlen($session_data)) 
    {
       if (!strstr(substr($session_data, $offset), "|")) 
        {
          throw new Exception("invalid data, remaining: " . substr($session_data, $offset));
        }
          $pos = strpos($session_data, "|", $offset);
          $num = $pos - $offset;
          $varname = substr($session_data, $offset, $num);
          $offset += $num + 1;
          $data = unserialize(substr($session_data, $offset));
          $return_data[$varname][] = $data;  
          $offset += strlen(serialize($data));
      }

      }
     var_dump( $return_data['user_name'][0] );

     foreach($return_data['user_name'] as $onesession) {
          echo $onesession;
          echo '<br>';
     }

?>

$ return_data = array ();Я переместил его из цикла foreach

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