如何在codeigniter和Angular之后将查询结果添加到对象

时间:2015-08-14 05:03:35

标签: php angularjs codeigniter

我有问题制作一个我想转移到Angular的对象。 我的代码如下:

class Pokayokes_model extends CI_Model {

public function get( $name = false, $number = false ) 
            $this->db->select('*');
            $this->db->from('poke_yoke p'); 
            $this->db->join('rysunek r', 'r.nazwa_rys=p.nazwa_rys', 'left');
            $this->db->where('r.nazwa_rys',$name);

            $query = $this->db->get();



            foreach ($query->result_array() as $row)
            {
                echo $res1 = $row['nazwa_art'];
                echo $res2 = $row['kolory_art'];

                $start = 7;
                $end = 7 + $number;         


                for ($i = $start; $i < $end; $i++)
                {
                    $j = $i - 6;
                    echo "<br>";
                    echo $res3 = $row['py_'.$j.''];
                }

               $qResults[] = $res1.','.$res2.','.$res3;
               echo "<pre>";
               var_dump($qResults);
               echo "</pre>";
              }
  return ?;

}

知道我需要使用这样的东西:

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

但我不知道该行$row['py_'.$j.'']如何制作。 在数据库中,我有像py_1,py_2,py_3,...等列,但不是每次都需要它。有时我只需要3,有时10,所以我需要动态生成。

15.08.15编辑:

我尝试过去2天使这段代码正常工作,但事实并非如此。 我认为这段代码不对。 我需要这部分(下面)制作对象,但我不知道怎么做?

for ($i = $start; $i < $end; $i++)
{
  $j = $i - 6;
  $res3 = $row['py_'.$j.''];
}

因为我想用这个:

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

我还有一个问题...... 我如何从这个循环中显示这个结果?我需要添加到数组?我需要在结果旁边写什么? 我想在最后输出如下:

[
{"nazwa_art":"11_13_1532","kolory_art":"C,M,Y,K","py_1":"Y","py_2":"Y","py_3":"M","py_4":"M","py_5":"M","py_6":"M"},
{"nazwa_art":"11_13_1512","kolory_art":"C,M,Y,K","py_1":"Y","py_2":"Y","py_3":"M","py_4":"M","py_5":"x","py_6":"x"}
]

21.08.15编辑:

我对我的代码进行了另一次修改,它看起来像这样:

class Pokayokes_model extends CI_Model {

    public function get( $pokayokeName = false, $number = false ) 
    {           

        $this->db->select('*');
        $this->db->from('poke_yoke p'); 
        $this->db->join('rysunek r', 'r.nazwa_rys=p.nazwa_rys', 'left');
        $this->db->where('r.nazwa_rys',$pokayokeName);

        $query = $this->db->get();

        foreach ($query->result_array() as $row)
        {
            $res1 = $row['nazwa_art'];
            $res2 = $row['kolory_art'];

            $qResults = array();
            $qResults['nazwa_art'] = $res1;
            $qResults['kolory_art'] = $res2;


            $start = 7;
            $end = 7 + $number;         
            for ($i = $start; $i < $end; $i++)
            {
                $j = $i - 6;
                $res3 = $row['py_'.$j.''];
                $qResults['py_'.$j.''] = $res3;
            } 

        }

    echo json_encode($qResults);

    }
}

输出如下:

{"nazwa_art":"11_15_0492","kolory_art":"C,M,Y,K,PBlue5575,PGreenYellow5576","py_1":"x","py_2":"PGreenYellow5576","py_3":"PGreenYellow5576","py_4":"PBlue5575","py_5":"PBlue5575" }

但应该是3个结果,而不仅仅是一个。

而且我不知道为什么Angular是空的?

1 个答案:

答案 0 :(得分:0)

使用如下

class Pokayokes_model extends CI_Model {

public function get( $name = false, $number = false ) 
{           
     $this->db->select('*');
     $this->db->from('poke_yoke p'); 
     $this->db->join('rysunek r', 'r.nazwa_rys=p.nazwa_rys', 'left');
     $this->db->where('r.nazwa_rys',$name);

     $query = $this->db->get();

     foreach ($query->result_array() as $row)
    {
        $res1 = $row['nazwa_art'];
        $res2 = $row['kolory_art'];

        $start = 7;
        $end = 7 + $number;         
        for ($i = $start; $i < $end; $i++)
        {
            $j = $i - 6;
            $res3 = $row['py_'.$j.''];
        }

         $qResults[] = $res1.','.$res2.','.$res3;
    }

    echo json_encode(['result'=>$qResults]);

}
}