如何为CodeIgniter查询结果添加值?

时间:2013-12-04 03:08:06

标签: arrays codeigniter array-push

我使用CodeIgniter生成一些查询结果,然后在第二步中使用foreach循环使用查询结果中的值运行方法。我现在要做的是以某种方式将新变量与原始查询相结合。这是迄今为止的代码:

$qryOriginal = $this->db->query("SELECT 1 as BAND, 
  tblappeals.Scenario, 
  tblappeals.Year, 
  tblappeals.var1, 
  tblappeals.var2 
  FROM tblappeals 
  WHERE tblappeals.Property = $pn ");

foreach ($qryOriginal->result() as $row)
{
$var3 = $this->getPhaseIn($calcyear, $row->var1, $row->var2);
    echo $var3; //HOW CAN I ADD THIS $var3 VALUE TO qryOriginal ???  
}

必须有一种简单的方法将此新值添加到原始查询中。我只是不知道该怎么做。我正在考虑使用array_push(),但这似乎不是正确的功能。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

  $qryOriginal = $this->db->query("SELECT 1 as BAND, 
  tblappeals.Scenario, 
  tblappeals.Year, 
  tblappeals.var1, 
  tblappeals.var2 
  FROM tblappeals 
  WHERE tblappeals.Property = $pn ");

$qryOriginalResults = $qryOriginal->result_array();
//result() gives result object
foreach ($qryOriginalResults as $row)
{
    $var3 = $this->getPhaseIn($calcyear, $row['var1'], $row['var2']);
    $qryOriginalResults[] = $var3;
}
$data['mydata'] = $qryOriginalResults;

答案 1 :(得分:0)

所以你不能直接将它添加到结果中; 可以做的是将结果存储在变量中,并将$var3的内容添加到此变量中。像这样:

$qryOriginal = $this->db->query("SELECT 1 as BAND, 
  tblappeals.Scenario, 
  tblappeals.Year, 
  tblappeals.var1, 
  tblappeals.var2 
  FROM tblappeals 
  WHERE tblappeals.Property = $pn ");

$qryOriginalResults = $qryOriginal->result();

foreach ($qryOriginal->result() as $row)
{
    $var3 = $this->getPhaseIn($calcyear, $row->var1, $row->var2);
    $qryOriginalResults[] = $var3;
}

考虑一下,如果你将$var3添加到实际结果中,你将创建一个永无止境的for循环。