CODEIGNITER FOREACH

时间:2013-08-30 10:21:50

标签: codeigniter loops model

我需要使用codeigniter生成月度报告。我必须发布数据结果(如果有的话),它将等于循环内1月到12月的给定月份。

示例:

  

-----------一月-------------
  +名称|电子邮件|记录+
  + asdgh | trtryjei | fguuyiuy +
   ---------- ------------月
  +名称|电子邮件|记录+
  + asdgh | trtryjei | fguuyiuy +

for($i=1;$i<=12;$i++){
//run the query here matching the date based on $i. 1 = January and so on. }

我只是不知道如何使用codeigniter来实现它。我真的很感谢你的帮助。感谢。

2 个答案:

答案 0 :(得分:0)

尝试这样的事情:

$curYear    = '2013';
for( $i=1; $i<13; $i++ ){
    for( $j=1; $j<32; $j++ ){
        $dateToday  = $curYear.'-'.$i.'-'.$j;
        #your query here
        $rs = $this->db->select('*')->where('date', $dateToday)->get('table');
    }
}

答案 1 :(得分:0)

主要CI功能的工作方式如下: -

<强>结果()

此函数将查询结果作为对象数组返回,或者在失败时返回空数组。通常你会在foreach循环中使用它,如下所示:

$query = $this->db->query("YOUR QUERY");

foreach ($query->result() as $row)
{
   echo $row->title;

   echo $row->name;

   echo $row->body;
}

上述函数是result_object()的别名。

如果您运行的查询可能不会产生结果,建议您先测试结果:

$query = $this->db->query("YOUR QUERY");

if ($query->num_rows() > 0)
{
   foreach ($query->result() as $row)
   {
      echo $row->title;

      echo $row->name;

      echo $row->body;
   }
}

您还可以将一个字符串传递给result(),该结果表示要为每个结果对象实例化的类(注意:必须加载此类)

$query = $this->db->query("SELECT * FROM users;");

foreach ($query->result('User') as $row)
{
   echo $row->name; // call attributes

   echo $row->reverse_name(); // or methods defined on the 'User' class
}

<强> result_array()

此函数将查询结果作为纯数组返回,或者在未生成结果时返回空数组。通常你会在foreach循环中使用它,如下所示:

$query = $this->db->query("YOUR QUERY");

foreach ($query->result_array() as $row)
{
   echo $row['title'];

   echo $row['name'];

   echo $row['body'];
}

<强>行()

此函数返回单个结果行。如果您的查询有多行,则只返回第一行。结果作为对象返回。这是一个用法示例:

$query = $this->db->query("YOUR QUERY");

if ($query->num_rows() > 0)
{
   $row = $query->row();

   echo $row->title;

   echo $row->name;

   echo $row->body;

}