Codeigniter活动记录多列查询只返回1列的值?

时间:2014-03-04 18:12:00

标签: php codeigniter activerecord

我正在尝试使用迄今为止在其他地方为我工作的技术将两列作为数组拉出来。但它只返回第一列的值,第二列为空值。

这是我的控制器

function status()
{
  $this -> load -> model('model');
  $data['query'] = $this -> model -> checkWebStatus('database');

  if ($this -> uri -> segment(3) == '')
  {
    $this -> template -> set_content('status_view', $data);
    $this -> template -> build();
  }
}

该模型如下所示:

function checkWebStatus($database)
{
  $this -> external_db = $this -> load -> database($database, TRUE);
  $query = $this -> external_db -> select('name_code, active_franchise');
  $query = $this -> external_db -> order_by('active_franchise DESC, name_code ASC');
  $query = $this -> external_db -> get('database_table');

  return($query -> result());
}

我的观点看起来像这样......

foreach ($query as $result)
{
  echo $result -> name_code;
  print ' ';
  echo (isset($result -> active_franchise)) ? $result -> active_franchise : 'var unset';
  print '<br />';
}

我最终得到了一个name_code数组和随附的“var unset”消息。有什么建议?正如我所说的那样,这个系统在使用不同的列名称之前工作正常,唯一的区别是这个数据库是在模型中显式设置的,而它看起来处理的区域是通过Codeigniter在默认的“db”上。

感谢您阅读本文,谢谢。

--- --- EDIT

废话我很糟糕,不敢相信我错过了错字。但。它没有解决问题。现在,它不是显示“var unset”,而是根本没有列出任何值。它应返回1或0。

---编辑2 ---

var_dump($ result)返回....

object(stdClass)#24 (2) { ["name_code"]=> string(6) "GECAOC" ["active_franchise"]=> string(1) "" } GECAOC 
object(stdClass)#25 (2) { ["name_code"]=> string(6) "GEPACT" ["active_franchise"]=> string(1) "" } GEPACT 
object(stdClass)#26 (2) { ["name_code"]=> string(6) "GEWAES" ["active_franchise"]=> string(1) "" } GEWAES 

2 个答案:

答案 0 :(得分:0)

  echo (isset($result -> active_frachise)) ? $result -> active_franchise : 'var unset';
  print '<br />';

更改为

  echo (isset($result -> active_franchise)) ? $result -> active_franchise : 'var unset';
  print '<br />';

由于isset返回false

,它甚至永远不会达到可以回应活动特许经营权的程度

答案 1 :(得分:0)

让它死了@ Chitowns24我将表的列从bit编辑为tinyint(1)并将其设置为not null(与另一个工作区中使用的代码非常相似的设置相比,并看到了差异那个字段)现在它按预期下降了值。

幸运的是,我的代码很好,我刚安装时没有安排好的桌子!