TABLES
我有2个表,Pengguna
和Mahasiswa
,表pengguna
是一个包含用户数据的表,可以登录到网站,而表mahasiswa
包含用户姓名,电子邮件,电话等数据。
然后我希望已登录的用户显示表mahasiswa
中已存在的凭据信息。假设我使用用户名“123”使用 id_pengguna“3”登录,这意味着我的名字是“Mirza”和 my nim是“123”等等。
问题是我如何设置已记录用户的会话并从表mahasiswa
获取用户信息?我所能做的就是显示mahasiswa
中的第一个表,而不是从用户登录会话中获取数据,下面是controller
,model
和view
模型
<?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');
}
}
查看
<?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>
答案 0 :(得分:1)
很简单,您可以创建一个新查询,从mahasiswa
表中选择数据。
将此添加到您的控制器
$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>
在视图顶部添加此内容
<?php
if ($row){
$nim= $row->nim;
$nama_mahasiswa = $row->nama_mahasiswa;
$email = $row->email;
$telepon= $row->telepon;
} else {
$nim =
$nama_mahasiswa =
$email =
$telepon = "";
}
?>
答案 1 :(得分:1)
您可以在模型中运行此查询,并从两个表中获取数据,然后可以使用它。将id发送到id_pengguna的模型。此ID将是用户 id 以进行比较
的模型强>
$privateKey = openssl_pkey_new(array(
'private_key_bits' => 384, // Size of Key.
'private_key_type' => OPENSSL_KEYTYPE_RSA,
));
openssl_pkey_export($privateKey, $privKey, null, ['config' => 'C:/wamp/bin/apache/apache2.4.9/conf/openssl.cnf']);
$a_key = openssl_pkey_get_details($privateKey);
file_put_contents('keys/'.$username.'_public.key', $a_key['key']);
file_put_contents('keys/'.$username.'_private.key', $privKey);
openssl_free_key($privateKey);
<强>控制器强>
function getdata($id){
$query = "select peng.*, masha.*
from pengguna peng join mashasiswa masha
on id_pengguna where masha.id_pengguna = $id";
$query = $this->db->query($query);
return $query->result_array();
}
希望这会有所帮助。