переменная массива codeigniter - PullRequest
0 голосов
/ 21 января 2010

Вот мой код, пока все работает, за исключением случаев, когда я пытаюсь сделать 'company' = $ company, что-то мне не хватает, и я люблю знать, что

if($query) // if the user's credentials validated///
    {
        $this->db->where('username');
        $this->db->select('company');
        $company = $this->db->get('user');

        $data = array(
            'username' => $this->input->post('username'),
            'company' => $company
            'is_logged_in' => true
        );
        $this->session->set_userdata($data);
        redirect('site/members_area');
    }
    else
    {
        $this->index();
    }

Ответы [ 3 ]

1 голос
/ 22 января 2010

result_array - это функция, а не переменная. Попробуйте

if($query) {
  $username = $this->input->post('username');

  $this->db->where('username', $username);
  $this->db->select('company');
  $query_result = $this->db->get('user');

  // Here we assume that the query succeeded.
  // You should probably double-check.
  $result= $query_result->result_array();

  $data = array(
      'username' => $username,
      'company' => $result[0]['company'],
      'is_logged_in' => true
  );
  $this->session->set_userdata($data);
  redirect('site/members_area');
} else {
  $this->index();
}
1 голос
/ 22 января 2010

Оба других ответа исправляют одну из двух ошибок в вашем коде, это дополнение.

if($query) {
  $username = $this->input->post('username');

  $this->db->select('company')->where('username', $username);
  $result = $this->db->get('user')->row_array();

  $data = array(
      'username' => $username,
      'company' => $row['company'],
      'is_logged_in' => true
  );
  $this->session->set_userdata($data);
  redirect('site/members_area');
} else {
  $this->index();
}

Видишь, что я там делал? Вам не нужно использовать result_array (), а затем захватить $ query_result [0], как row_array () сделает это за вас. И с небольшим добавлением цепочки методов для хорошей меры вы можете очистить свой синтаксис.

1 голос
/ 21 января 2010

Отсутствует запятая после "$ company".

РЕДАКТИРОВАТЬ: На основе обсуждения в комментариях, я переписал ваш код, чтобы (надеюсь) получить значение компании:

if($query) {
  $username = $this->input->post('username');

  $this->db->where('username', $username);
  $this->db->select('company');
  $result = $this->db->get('user');

  // Here we assume that the query succeeded.
  // You should probably double-check.
  $company = $result->result_array[0]['company'];

  $data = array(
      'username' => $username,
      'company' => $company,
      'is_logged_in' => true
  );
  $this->session->set_userdata($data);
  redirect('site/members_area');
} else {
  $this->index();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...