Codeigniter select всегда возвращает данные верхней строки

#php #mysql #codeigniter

#php #mysql #codeigniter

Вопрос:

Я пытаюсь получить cus mobile из того, tbl_customer_registration откуда cus_email это исходное значение $email .

Другими словами, я хочу получить мобильный телефон клиента, где адрес электронной почты клиента равен $email

 $this->db->select("tbl_customer_registration.cus_mobile");
$this->db->from('tbl_customer_registration');
$this->db->where('tbl_customer_registration.cus_email', $email);
$query = $this->db->get();
if ($query->num_rows() > 0) { 
  return $query->row_array();
} else {
  return NULL;
}
  

введите описание изображения здесь

Он всегда возвращает первую строку tbl_customer_registration.cus_mobile

Вот что они возвращают, это не cus_mobile, что мне нужно

 Array
(
  [session_id] => ecf905ab051376563d3ce4140716d818
  [ip_address] => ::1
  [user_agent] => Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0
  [last_activity] => 1404446526
  [user_data] => 
  [mobile] => 0712641946
  [user_name] => podijobs@gmail.com
  [is_logged_in] => 1
  [cart_contents] => Array
  (
    [66eeaa0e65f3bf68db770c4c1b29891e] => Array
    (
      [rowid] => 66eeaa0e65f3bf68db770c4c1b29891e
      [id] => SP004
      [qty] => 1
      [price] => 1500
      [name] => Vegi Pizza Big
      [image] => pizza-buena.jpg
      [subtotal] => 1500
    )
    [total_items] => 1
    [cart_total] => 1500
  )
)
  

Комментарии:

1. Это должно сработать. Хотя возвращаемым значением будет массив с ключом cus_mobile и значением 071….

2. Спасибо вам за ответ . Он возвращает какое-то другое значение, не то, что мне нужно

3. пожалуйста, используйте var_dump ( $query->row_array()) или print_r ( $query-> row_array()) и покажите нам выданные результаты

4. Этот запрос возвращает что?

5. Он возвращает первую строку tbl_customer_registration.cus_mobile

Ответ №1:

вам нужно использовать функцию result() или result_array(), чтобы вернуть результат запроса, подобный:

 foreach ($query->result_array() as $row)
{
   echo $row['cus_mobile'];
}
  

в случае, если вы ожидаете, что будет возвращена только одна строка, вы также можете использовать функцию row(), например:

 if ($query->num_rows() > 0)
{
  $row = $query->row();
  echo $row->cus_mobile;
} 
  

Комментарии:

1. Спасибо за ваш ответ, первый foreach возвращает все cus_mobile из базы данных, а второй код возвращает мой старый результат.