Как получить разделенную запятыми строку в Codeigniter и сравнить с идентификатором сессии - PullRequest
0 голосов
/ 08 декабря 2018

Гайз Мне нужна помощь в SQL-запросе CodeIgniter, у меня есть одна календарная таблица и хранилище идентификаторов, например 1,2,3 .... так что теперь я хочу, чтобы записи совпадали с идентификатором сеанса в CodeIgniter, так как я могу это сделатьЗдесь я поместил свое изображение таблицы, поэтому, пожалуйста, проверьте его Таблица календарей Так как я могу разделить этот идентификатор и сравнить с идентификатором сессии

    <?php
public function projectuser()
{
    $data['test'] = $this->main_model->getproject();
    $data['get_cat'] = $this->main_model->getprojectid();
    $this->load->view('projectuser',$data);
}

?>

МОДЕЛЬ:

    public function getproject() {

  $data = $this->session->userdata('user_id');
  $this->db->select("*");
  $this->db->from("user_registration");
  $this->db->join('calendar','user_registration.user_id=calendar.user_id', 'INNER');
  $this->db->where('user_registration.user_id', $data);
  $this->output->enable_profiler(TRUE);
  $query = $this->db->get();
  return $query->result();
}

public function getprojectid() {
    $this->db->select("*");
    $this->db->from("calendar");
    $query = $this->db->get();
    return $query->result();
}

ВИД:

   foreach ($test as $val) {
            $array = explode(",", $val->user_id); // GET ALL IS
            echo $val->title .'&nbsp;&nbsp;';
          }

          foreach ($get_cat as $key => $value) {

            if (in_array($value->user_id, $array)) {
             echo $value->user_id .'&nbsp;&nbsp;<br/>'; //COMPARE WITH SESS

           }
         }

1 Ответ

0 голосов
/ 08 декабря 2018

Вы можете преобразовать вашу строку, разделенную запятыми, в массив, используя explode, а затем проверить, находится ли идентификатор вашей сессии в этом массиве, используя in_array

, если вы уже запросили эту строку

$array = explode(',', $comma_separated_values);
if(in_array($session_id, $array)
{
    // do your magic
}

но если вы хотите SQL-запрос, вы можете попробовать это:

SELECT whatever WHERE FIND_IN_SET($session_id, comma_separated_field)


Я исправил ваш код здесь:

foreach ($get_cat as $key => $value) 
{
    $array = explode(',', $value->user_id);
    if (in_array($data->user_id, $array))
    {
        echo $value->user_id .'&nbsp;&nbsp;<br/>'; //COMPARE WITH SESS
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...