Показать данные об активном пользователе после входа в систему в codeigniter - PullRequest
0 голосов
/ 08 мая 2019

Я хочу показать данные пользователя сразу после входа в систему.вот мой код:

--- Модель ---

function getDetailsLogin($nama_serv, $no_polisi_serv, $kendaraan_serv, $lokasi_serv, $tgl_serv, $waktu_serv){
        $this ->db-> select('id_service, nama_serv, no_polisi_serv, kendaraan_serv','lokasi_serv','tgl_serv','waktu_serv');
        $this ->db-> from('service');
        $this ->db-> where('nama_serv', $nama_serv);
        $this ->db-> where('no_polisi_serv', $no_polisi_serv);
        $this ->db-> where('kendaraan_serv', $kendaraan_serv);
        $this ->db-> where('lokasi_serv', $lokasi_serv);
        $this ->db-> where('tgl_serv', $tgl_serv);
        $this ->db-> where('waktu_serv', $waktu_serv);
        $query = $this ->db-> get();
        return $query->result();
    }

--- Контроллер ---

    public function index(){
        $data['konsumen']=$this->Mymodel->getDetailsLogin(
            'nama_serv', 
            'no_polisi_serv', 
            'kendaraan_serv', 
            'lokasi_serv', 
            'tgl_serv', 
            'waktu_serv'
        );
        $this->load->view('Home/title');
        $this->load->view('Home/navbar');
        $this->load->view('Konsumen/konsumen',$data);
        $this->load->view('Home/footer');
    }

--- Просмотр ---

  <?php foreach ($konsumen as $key): ?>
    <?php echo $key->nama_serv; ?><br>
    <?php echo $key->no_polisi_serv; ?><br>
    <?php echo $key->kendaraan_serv; ?><br>
  <?php endforeach ?>

После того, как я запустил код, он ничего не показывал

РЕДАКТИРОВАТЬ: То, что я хочу сделать, это после того, как пользователи делают регистрацию, пользователи могут войти в систему, а после входа пользователи могутувидеть их детали информации, которую они помещают в регистрационную форму.я уже прошел сеанс входа в систему, теперь я хочу показать подробную информацию о пользователе

и это моя база данных

Ответы [ 4 ]

0 голосов
/ 09 мая 2019

Наконец-то понял. Черт, мне понадобилось всю ночь, чтобы понять это

Так как я использую электронную почту для входа в систему, то она должна быть

    function getDetailsLogin(){
        $this ->db-> select('*');
        $this->db->from('service');
        $this->db->where('email_serv', $this->session->userdata('email_serv'));
        $query = $this ->db->get()->row();
        return $query;
    }

после этого я называю это в представлении

<?php echo $this->Mymodel->getDetailsLogin()->nama_serv; ?>

контроллер не нужен

Также спасибо всем, кто пытается помочь этому идиоту, очень ценю это :)

0 голосов
/ 08 мая 2019

Попробуйте использовать это на вашей модели:

function getDetailsLogin($nama_serv, $no_polisi_serv, $kendaraan_serv, $lokasi_serv, $tgl_serv, $waktu_serv){
    $this ->db-> select('id_service, nama_serv, no_polisi_serv, kendaraan_serv','lokasi_serv','tgl_serv','waktu_serv');
    $this->db->from('service');
    $this->db->where('nama_serv', $nama_serv);
    $this->db->where('no_polisi_serv', $no_polisi_serv);
    $this->db->where('kendaraan_serv', $kendaraan_serv);
    $this->db->where('lokasi_serv', $lokasi_serv);
    $this->db->where('tgl_serv', $tgl_serv);
    $this->db->where('waktu_serv', $waktu_serv);
    $query = $this ->db-> get();
    return $query->row();
}

Если вы хотите показывать данные только 1 (одного) человека, вам не нужен foreach .

По вашему мнению, сделайте это:

Nama Service : <?= $key->nama_serv; ?>
Nomor Polisi : <?= $key->no_polisi_serv; ?>
Kendaraan : <?= $key->kendaraan_serv; ?>

Салам ~

0 голосов
/ 08 мая 2019

Я не уверен, каков ваш дизайн базы данных (если этот ответ не решает проблему, пожалуйста, опубликуйте изображение схемы в вашем вопросе), но ваши утверждения where кажутся бесполезными, например, nama_serv = 'nama_serv'.

Я думаю, вы хотите это:

function getDetailsLogin(){
        $this->db->select('id_service, nama_serv, no_polisi_serv, kendaraan_serv','lokasi_serv','tgl_serv','waktu_serv');
        $this->db->from('service');
        $this->db->where('primary_key_field', $this->session->userdata('id'));
        $query = $this->db->get();
        if ($query->num_rows() == 1) {
            return $query->row(); // because you just want 1! no foreach required in view.
        }
        return false; // this should never have happened as the user is supposed to be logged in and have a valid session id.
    }

, где primary_key_field - уникальный идентификатор текущего пользователя, а userdata('id') - переменная сеанса, в которой он содержится.

0 голосов
/ 08 мая 2019
$data['konsumen']=$this->Mymodel->getDetailsLogin(
            'nama_serv', 
            'no_polisi_serv', 
            'kendaraan_serv', 
            'lokasi_serv', 
            'tgl_serv', 
            'waktu_serv'
        );

Здесь в этой функции вам не нужно указывать значения? похоже, что вы отправляете в функцию имя столбцов, а не значения, которые вы хотите запросить по

Вы можете попробовать после

    $query = $this ->db-> get();

добавить

$str = $this->db->last_query();
die($str)

, который даст вам запрос.

После того, как вы запустите запрос непосредственно на БД, чтобы увидеть, что он возвращает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...