php - 从 session 中获取用户数据 Codeigniter

标签 php mysql codeigniter

TABLES

彭古纳 Pengguna

马哈西斯瓦 Mahasiswa

我有 2 个表,PenggunaMahasiswa,表 pengguna 是一个包含可以登录网站的用户数据的表而表 mahasiswa 包含用户数据,例如姓名、电子邮件、电话等。

然后我希望已登录的用户显示表 mahasiswa 中存在的凭据信息。假设我使用用户名“123”id_pengguna“3”登录,这意味着我的名字是“Mirza”并且我的nim 是“123” 等等

问题是如何设置登录用户的 session 并从表mahasiswa 中获取用户信息?我所能做的就是显示 mahasiswa 中的第一个表,而不是从登录 session 的用户那里获取数据,下面是 controllermodel查看

Model

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

   class MProfile extends CI_Model{
       function __construct(){
           parent::__construct();
           $this->load->database();
       }
       function read($cond, $ordField, $ordType){
          if($cond!=null){
             $this->db->where($cond);
          }
          if($ordField!=null){
             $this->db->order_by($ordField, $ordType);
          }
       $query = $this->db->get('mahasiswa');
       return $query;
       }
   }

CONTROLLER

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

class Profil extends MY_Controller {
    public function __construct(){
        parent::__construct();
        $this->load->helper('url');
        $this->load->library('session');
        $this->load->model('MProfile');

    }

    public function index(){
        $data['menu4'] = true;
        /*$this->sessionOut();*/
        $this->session->userdata('idpengguna');
        $data['query'] = $this->MProfile->read(null, 'nim', 'ASC');

        $this->load->view('layouts/header');
        $this->load->view('profil_page', $data);
        $this->load->view('layouts/footer');
    }

}

VIEW

<?php 
    if(isset($this->session->userdata['logged_in'])){
        $nim = $this->session->userdata['loggedin']['nim'];
    }
?>
<ul class="category-t">
    <?php foreach ($query->result() as $result){}?> 
    <li><?php echo $result->nim;?></li>
    <li><?php echo $result->nama_mahasiswa;?></li>
    <li><?php echo $result->email;?></li>
    <li><?php echo $result->telepon;?></li>
</ul>

最佳答案

很简单,您可以创建一个新的查询,从您的 mahasiswa 表中选择数据。

将此添加到您的 Controller

$data["row"] = $this->Mprofile->getmahasiswa();

在你的模型中

function getmahasiswa(){
   $idpengguna = $this->session->userdata('idpengguna');

   $this->db->where('id_pengguna', $idpengguna);
   $q = $this->db->get('mahasiswa');
   return $q->row();
}

在你看来

<ul class="category-t">
   <li><?php echo $nim;?></li>
   <li><?php echo $nama_mahasiswa;?></li>
   <li><?php echo $email;?></li>
   <li><?php echo $telepon;?></li>
</ul>

将其添加到您的 View 顶部

<?php
   if ($row){
       $nim= $row->nim;
       $nama_mahasiswa = $row->nama_mahasiswa;
       $email = $row->email;
       $telepon= $row->telepon;
   } else {
       $nim =
       $nama_mahasiswa =
       $email = 
       $telepon = "";
   }
?>

关于php - 从 session 中获取用户数据 Codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36050331/

相关文章:

php - 为首次购买者添加商品到购物车

php - 输出 HLS m3u8 TS 段 PHP-FPM Nginx

php - 没有从 sqlsrv_num_rows 得到任何返回

php - 如何在CodeIgniter框架中将图像上传到文件夹并插入到数据库

PHP/MySQL 日期时间字段 : get all entries in given month

MYSQL:连接表性能缓慢

mysql - RMySQL 返回 utf8 文本的乱码

php - JOIN 只返回一个结果

javascript - 如何为我的 php Web 应用程序提供桌面通知?

php - 如何在 codeigniter 中下载文件?