【发布时间】:2016-02-15 04:54:09
【问题描述】:
感谢您对 my previous question 关于 Codeigniter 的帮助
更新:由于每个人都对我的问题感到有些困惑,因此我编辑了我的问题。
我在一家银行公司工作,我的项目是为我公司的客户交易创建实时监控。
我需要帮助来创建一个 HTML 表,该表显示每个客户端的总事务,包括成功和失败。 HTML 表格应如下所示:
这是我的数据库结构(我无法更改结构,因为我没有 root 访问权限)
数据库 A(包含银行名称及其 ID 代码)
表 1 = 银行名称、ATMNode、CardNode、BankGroup、CDC
数据库B(包含所有交易数据,如日期、加密和加密卡号)
表 2 = Postid、Transid、SettleID、ATMNode、Rsp_Code、CDC
现在,我已成功循环模型中的所有银行名称。我需要做的就是从每个银行名称中计算 SUCCESS 和 FAILURE 行,然后循环计算结果。
起初我为 1 个银行名称创建了 1 个函数,但后来我从某人那里得到了一个提示,但它不是这样工作的。他说我需要用循环的银行名称创建一个参数或其他东西,然后我可以循环每个银行名称的 COUNT 数据。
这是我的模型:
<?php class Dash_model extends CI_Model {
public function __construct()
{
// Cal CI Constructor
parent::__construct();
// Load Database A.
$CI = &get_instance();
//setting the second parameter to TRUE (Boolean) the function will return the database object.
$this->db2 = $CI->load->database('db2', TRUE);
}
// Get all the bank name
public function getbanklist()
{
$query = $this->db2->query("SELECT BankName FROM Table1 ORDER BY BankName");
return ($query->result());
}
function transapproved() // Counting Success
{
// Database B autoloaded in autoload.php
$this->db->select('TransID');
$this->db->from('Table2');
$this->db->join('Table1', 'Table1.CDC = Table2.CDC', 'inner');
$this->db->where('BankName', $getbanklist);
$this->db->where('Rsp_code', '01');
$data = $this->db->get();
return $this->data->num_rows();
}
function transfailure() // Counting Failure
{
// Database B autoloaded in autoload.php
$this->db->select('TransID');
$this->db->from('Table2');
$this->db->join('Table1', 'Table1.CDC = Table2.CDC', 'inner');
$this->db->where('BankName', $getbanklist);
$this->db->where('Rsp_code', '02');
data = $this->db->get();
return $this->data->num_rows();
}
}
?>
当然我的模型不工作。它没有返回任何东西。即使它工作,它也只返回一行。所以我需要你们的帮助。
然后这是我的控制器:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Dash_control extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('dash_model');
$this->load->library('table');
}
public function index()
{
$tmpl = array (
'row_start' => '<tr>',
'row_end' => '</tr>',
'cell_start' => '<td>',
'cell_end' => '</td>',
);
$this->table->set_template($tmpl);
$data['banknamehere'] = $this->dash_model->getbanklist();
$this->load->view('dashboard',$data);
}
}
然后我将它传递给我的 VIEW:
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>Bank Name</th>
<th>Trans Success</th>
<th>Trans Failure</th>
</tr>
</thead>
<tbody>
<?php foreach ($banknamehere as $row)
{ ?>
<tr><td><?php echo $row->banknamehere; ?></td></tr>
<?php } ?>
</tbody>
</table>
是的,一切都没有奏效。我认为关键必须在模型中。但我不知道怎么做。 谢谢你的帮助...
【问题讨论】:
-
table1 和 table2 中的公共字段是什么?以及你为什么使用 table3 ?
-
我知道这真的很令人困惑...但是我展示的表格只是我公司数据库中的一个示例...表 1 包含客户的个人数据,而表 2 和表 3 处理所有交易信息...
-
此架构在逻辑上是错误的。您将如何从
table 2指向客户。要求您的公司重新设计架构,或者您可以修复它。 -
好的。那就是示例数据结构错误。表 1 和表 2 必须有客户 ID。表 1 中有一个主键,表 2 中有一个外键。如果您在表结构中更改此类型。然后继续前进。
-
好吧,大家好像都糊涂了,让我用真实的重新设计一下结构吧……我在一家银行公司工作,所以我不敢展示真实的表结构,因为它是非常机密...请给我几分钟...
标签: php sql sql-server codeigniter