2017-09-02 170 views
1

我想要在用户仪表板上自动显示这些结果,当用户登录到他们的仪表板时,我希望此查询运行并向他们显示其用户ID的统计信息。请建议如何做到这一点。如何获得登录用户ID,统计的工作代码在下面发布。获取登录从codeigniter会话中的用户ID

echo '<pre>'; print_r($this->session->all_userdata());exit; 

我越来越:

<?php 
$query = $this->db->query("SELECT 
      tblclients.userid as client_id, 
      tblclients.company as company_name, 
      IFNULL(tblinvoices.total, 0) AS total_amount, 
       IFNULL(tblinvoicepaymentrecords.amount, 0) AS paid_amount, 
       (IFNULL(tblinvoices.total, 0) - IFNULL(tblinvoicepaymentrecords.amount, 0)) AS amount_due 
      FROM 
      tblclients 
      LEFT JOIN tblinvoices ON tblclients.userid = tblinvoices.clientid 
      LEFT JOIN tblinvoicepaymentrecords ON tblinvoices.id = tblinvoicepaymentrecords.invoiceid 
      WHERE tblclients.userid = 1"); 

foreach ($query->result_array() as $row) 

{ 
     echo $row['total_amount'] . " " . $row['paid_amount'] . " " .$row['amount_due']; 
     echo "<br />"; 
     } 
?> 

检查这个代码后

Array 
(
    [__ci_last_regenerate] => 1504507372 
    [client_user_id] => 1 
    [contact_user_id] => 1 
    [client_logged_in] => 1 
    [red_url] => https://www.trisuka.com/crm/admin 
) 
+0

任何人,请帮帮忙。 –

+0

如何获得用户登录? ?您必须将它存储在codeigniter会话中? ? –

+0

@Root Ingenious:谢谢你在这里,好友,是的,我已经存储了,但正如你可以看到上面的代码,一个是由你给出的完整的sqlquery,我将如何在选择语句中应用用户ID,现在它是手动userid = 1 ..或者我必须从数据库中获取所有的用户ID和结果,将不得不筛选使用会话。 –

回答

2

所有我建议你先用,以检查在控制器中的所有会话数据

echo '<pre>'; print_r($this->session->all_userdata());exit; 

尝试打印并检查什么是会话中用于存储用户标识的密钥。

假设你有一个像userId数组中的键可用,那么 您可以使用下面的线

$userId = $this->session->userdata('client_user_id'); 

获取会话数据,但要确保你有一个名为“client_user_id”会话密钥可用。

一旦你得到$userId形式的会话,你可以连接到这样的查询。

$query = $this->db->query("SELECT 
      tblclients.userid as client_id, 
      tblclients.company as company_name, 
      IFNULL(tblinvoices.total, 0) AS total_amount, 
       IFNULL(tblinvoicepaymentrecords.amount, 0) AS paid_amount, 
       (IFNULL(tblinvoices.total, 0) - IFNULL(tblinvoicepaymentrecords.amount, 0)) AS amount_due 
      FROM 
      tblclients 
      LEFT JOIN tblinvoices ON tblclients.userid = tblinvoices.clientid 
      LEFT JOIN tblinvoicepaymentrecords ON tblinvoices.id = tblinvoicepaymentrecords.invoiceid 
      WHERE tblclients.userid = '".$userId."' "); 
+0

嗨亲爱的Punit,我检查了会话数据,正如你上面提到的,以及我发布的问题(更新)的结果。 –

+0

@GauravSingh,我已经更新了答案..尝试'$ userId = $ this-> session-> userdata('client_user_id');'你会得到登录的客户端。 –

+0

像Charm Buddy一样工作!非常感谢。 –