Как получить список пользователей в codeigniter?


Я пытаюсь получить список пользователей из таблицы пользователей в codeigniter. Моя проблема в том, что если я использую следующий код, чем пытаюсь распечатать результат, он дает мне пустой массив при печати запроса с использованием функции last_query(), и выполнение этого запроса в phpmyadmin дает правильный результат.

Мой код в модели

$data = $this->db->select('u.*')
                    ->from('users u')
                    ->join('users_groups ug','ug.user_id = u.id')
                    ->join('groups g','g.id = ug.group_id')
                    ->where('g.id',7)
                    ->get()
                    ->result();

Этот код дает мне пустой массив, затем я распечатал запрос, используя следующий код

echo $this->db->last_query();

И вот какой запрос был

SELECT `u`.* FROM `users` `u` JOIN `users_groups` `ug` ON `ug`.`user_id` = `u`.`id` JOIN `groups` `g` ON `g`.`id` = `ug`.`group_id` WHERE `g`.`id` = 7

Который работает нормально. но я пытаюсь распечатать данные с помощью print_r($data) , что дает мне пустой массив.

Кто-нибудь может сказать мне, в чем может быть проблема?

Отредактированный

Мой полный код модели.

<?php 
defined('BASEPATH') OR exit('No direct script access allowed');

class Technician_model extends CI_Model {

public function _consruct(){
    parent::_construct();
}

function getData(){
    $data = $this->db->select('u.*')
                    ->from('users u')
                    ->join('users_groups ug','ug.user_id = u.id')
                    ->join('groups g','g.id = ug.group_id')
                    ->where('g.id',7)
                    ->get()
                    ->result();
     return $data;
}

function getRecord($user_id){
    $record = $this->db->get_where('users',array('id'=>$user_id))->row();
    echo '<pre>';
    print_r($record);
    exit;
    return $record;
}

function addModel($data){

    if($this->db->insert('users',$data)){
        return  $this->db->insert_id();
    }
    else{
        return FALSE;
    }
}

function editModel($data,$user_id){

    $this->db->where('id',$user_id);

    if($this->db->update('users',$data)){
        return true;
    }
    else{
        return false;
    }
}

function deleteModel($user_id){

    $this->db->where('id', $user_id);

    if($this->db->delete('users')){
        return true;
    }
    else{
        return FALSE;
    }
 }
 }
 ?>
Author: pradeep, 2018-05-22

3 answers

Вы можете попробовать этот простой способ присоединиться к таблице. вы можете попробовать это и можете изменить fields name table name и method в соответствии с вашими требованиями.

public function getUser() {
    $this->db->select('users');
    $this->db->from('Users');
    $this->db->where('users_groups.user_id',1);
    $this->db->join('users_groups', 'users.id = users_groups.user_id');
    $query = $this->db->get();
    $result = $query->result_array();

   var_dump($result); // display data in array();
   return $result; 
}
 0
Author: Rudra, 2018-05-22 06:22:01

На самом деле, в конце 2 часов путешествия я обнаружил, что забыл настроить новую базу данных.

В данном случае все ответы были правильными.

 0
Author: DhavalThakor, 2018-05-22 05:57:14

Один раз обновите этот код и проверьте

public function _consruct(){
    parent::_construct();
    $this->load->database();
}

function getData(){
    $data = $this->db->query("SELECT `u`.* FROM `users` `u` JOIN `users_groups` `ug` ON `ug`.`user_id` = `u`.`id` JOIN `groups` `g` ON `g`.`id` = `ug`.`group_id` WHERE `g`.`id` = 7");
     return $data;
}
 -2
Author: Mukesh Jakhar, 2018-05-22 04:54:11