У меня есть простой запрос записи CodeIgniter Active для выбора идентификатора:
$q = $this -> db -> select('id') -> where('email', $email) -> limit(1) -> get('users');
Как я могу присвоить вышеуказанный идентификатор переменной (например, $ id) Например,
echo "ID is" . $id;
Благодарю.
Это довольно просто. Например, вот случайный код:
function news_get_by_id ( $news_id ) { $this->db->select('*'); $this->db->select("DATE_FORMAT( date, '%d.%m.%Y' ) as date_human", FALSE ); $this->db->select("DATE_FORMAT( date, '%H:%i') as time_human", FALSE ); $this->db->from('news'); $this->db->where('news_id', $news_id ); $query = $this->db->get(); if ( $query->num_rows() > 0 ) { $row = $query->row_array(); return $row; } }
Это вернет «строку», которую вы выбрали в качестве массива, чтобы вы могли получить к ней доступ, например:
$array = news_get_by_id ( 1 ); echo $array['date_human'];
Я также настоятельно рекомендую, а не цепочки запроса, как вы. Всегда имейте их отдельно, как в моем коде, что явно намного легче читать.
Также обратите внимание, что если вы укажете имя таблицы в from (), вы вызываете функцию get () без параметра .
Если вы не поняли, не стесняйтесь спрашивать 🙂
один короткий путь
$id = $this -> db -> select('id') -> where('email', $email) -> limit(1) -> get('users') -> result_array()[0]['id']; echo "ID is ".$id;
function news_get_by_id ( $news_id ) { $this->db->select('*'); $this->db->select("DATE_FORMAT( date, '%d.%m.%Y' ) as date_human", FALSE ); $this->db->select("DATE_FORMAT( date, '%H:%i') as time_human", FALSE ); $this->db->from('news'); $this->db->where('news_id', $news_id ); $query = $this->db->get(); if ( $query->num_rows() > 0 ) { $row = $query->row_array(); return $row; } } This
При использовании CodeIgniter Framework ссылайтесь на эту ссылку активных записей. как данные взаимодействуют со структурой и т. д.
Следующие функции позволяют создавать инструкции SQL SELECT.
Выбор данных
$ this-> db-> Get ();
Запускает запрос выбора и возвращает результат. Может использоваться самостоятельно для извлечения всех записей из таблицы:
$query = $this->db->get('mytable');
Имея доступ к каждой строке
$query = $this->db->get('mytable'); foreach ($query->result() as $row) { echo $row->title; }
Где ключи
$this->db->get_where();
НАПРИМЕР:
$query = $this->db->get_where('mytable', array('id' => $id), $limit, $offset);
Выберите поле
$this->db->select('title, content, date'); $query = $this->db->get('mytable'); // Produces: SELECT title, content, date FROM mytable
НАПРИМЕР
$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE); $query = $this->db->get('mytable');
Это ваш код
$q = $this -> db -> select('id') -> where('email', $email) -> limit(1) -> get('users');
Попробуй это
$id = $q->result()[0]->id;
или этот, он проще
$id = $q->row()->id;
echo $ this-> db-> select ('title, content, date') -> get_compiled_select ();
public function getSalary() { $this->db->select('tbl_salary.*,tbl_employee.empFirstName'); $this->db->from('tbl_salary'); $this->db->join('tbl_employee','tbl_employee.empID = strong texttbl_salary.salEmpID'); $this->db->where('tbl_salary.status',0); $query = $this->db->get(); return $query->result(); }
$query= $this->m_general->get('users' , array('id'=> $id )); echo $query[''];
нормально;)