如果您有任何建议,请一定要告诉我,因为我完全卡在了这个问题上!需要任何帮助。如果有什么不清楚的地方,请告诉我!
我的模型:
查询#1 - 从会话中检索广告系列ID的列表
public function retrieve_campaign($CompanyId)
{
$this->db->select('*');
$this->db->from('Campaign');
$this->db->join('Product', 'Campaign.ProductId=Product.ProductId');
$this->db->where('Product.CompanyId', $CompanyId);
$query = $this->db->get();
return $query->result_array();
}
查询 #2 -- 每天收集网站点击量
public function week_data($i, $CampaignId, $StartDate) {
$query = $this->db->query('SELECT COUNT(*) AS MyCount
FROM Record
WHERE CampaignId = ' . $CampaignId . '
AND DATE(TimeStamp) = ' . $StartDate . ' + interval ' . $i . ' day');
return $query;
}
我的控制器: 正如您所看到的,我设置了会话数据,并将其插入查询 #1。 然后在 foreach 循环中使用该数据查询 #2 七次(每周一次)。 这些数据随后存储在数组 $data['test'] 中。
public function index()
{
// Set Session Varaible
$CompanyId = $this->session->userdata('CompanyId');
$StartDate = "'2014-06-23'";
// Assign query result to array to be used in view
$data['campaigns'] = $this->model_record->retrieve_campaign($CompanyId);
foreach($data['campaigns'] as $item) {
for($x = 0;$x > 6;$x++) {
echo $item['CampaignId'];
$data['test'] = $this->model_record->week_data($x,$item,$StartDate);
}
}
// Load views, pass query result array
$this->load->view('templates/header');
$this->load->view('dashboard/index', $data);
$this->load->view('templates/footer');
}
我的看法:我在这里遇到困难——我想循环遍历CampaignId并将它们输出,然后输出与该CampaignId相关联的第二个查询的所有相关数据。
例子:
1)检索CampaignIds,为每周的每一天查询每个CampaignId 7次,然后在视图上打印类似于以下内容的东西:
CampaignId: 1 Web点击数:55,63,32,39,22,33,61
等等...
请给出建议,我已经在这个问题上工作了3天,但是现在卡住了。非常感谢大家!
编辑
非常感谢Scrowler对我的帮助—他帮我完成了每一步。可行的编辑如下:
控制器:
public function index()
{
// Set Session Varaible
$CompanyId = $this->session->userdata('CompanyId');
$StartDate = "'2014-06-23'";
// Assign query result to array to be used in view
$data['campaigns'] = $this->model_record->retrieve_campaign($CompanyId);
foreach($data['campaigns'] as $item) {
for($x = 0; $x < 7; $x++) {
$data['CampaignData'][$item['CampaignId']][] = $this->model_record->week_data($x, $item['CampaignId'], $StartDate);
}
}
// Load views, pass query result array
$this->load->view('templates/header');
$this->load->view('dashboard/index', $data);
$this->load->view('templates/footer');
}
查看:
<?php
foreach($CampaignData as $campaign_id => $week_data) {
echo 'Campaign: ' . $campaign_id . ', web hits: ' . implode(', ', $week_data) . PHP_EOL;
}
?>
echo $item['CampaignId'];
放在for
循环之前,然后在每次迭代中检索到$data['test']
后再将结果进行输出呢? - scrowler$data['CampaignData'][$item['CampaignId']][] = $this->model_record->week_data($x, $item, $StartDate);
- scrowler