将数据库值放入数组会在codeigniter中显示错误

时间:2016-02-26 13:38:25

标签: php arrays database codeigniter

我从许多表中获取数据。我想在不同的地方显示很多物体。我从数据库中获取了数据,但是我想将数据放入数组中以达到有用的目的,但它不起作用。

这是我的控制器代码:

public function compare_by_business_sectors() {
    //print_r($this->input->post());exit;
    if ($this->input->post())
    {
        $solution_array = array();
        //print_r (json_encode($business_sectors)); exit;
        $business_sectors=$this->home_model->compare_business_sectors_data($this->input->post());
        $tab_child_id = "";
        $id="";
        foreach ($business_sectors as $key=>$sectors) {
            $solution_array[1]=$sectors->solution_name;
            $solution_array[2]=$sectors->description;
            $solution_array[3]=$sectors->vendor_name;
            $solution_array[4]=$sectors->video_presentation;
            $solution_array[5]=$sectors->start_free_trail;
            $solution_array[6]=$sectors->hardware_package;
            $solution_array[7]=$sectors->pos_market_rating;

            //$solution_array[$sectors->field_id] = $sectors->value;
            $id = "solution".$sectors->tab_child_id;
            if ($tab_child_id != $sectors->tab_child_id) {
                $id = array();
                $id[$sectors->field_id] = $sectors->title;
            }
            else if ($tab_child_id == $sectors->tab_child_id) {
                $id[$sectors->field_id] = $sectors->title;
            }
        }
        //$solution_array[$id]= $id;
    }

    print_r($id);
    //$this->load->view('compare_by_business_sectors.php');
}

这是我的型号代码:

public function compare_business_sectors_data($sectorid) {
    $query = $this->db->select('solutions.*,solution_tabs_child_fields.field_id,solution_tabs_child_fields.tab_child_id,solution_tabs_child_fields.title')
            ->from('solutions')
            //->join('solutions', 'business_sector.sector_id = solutions.business_sector_id',"left")
            ->join('solution_features','solutions.entry_id  = solution_features.entry_id',"left")
            ->join('solution_tabs_child_fields','solution_features.field_id = solution_tabs_child_fields.field_id')
            ->where('solutions.business_sector_id', $sectorid['id'])
            ->get();
    return $query->result();
    //print_r($query->result());exit;
}

1 个答案:

答案 0 :(得分:0)

按以下方式更改,然后尝试。

   $id_string = "";
   $id_array = array();
        foreach ($business_sectors as $key=>$sectors) {
            $solution_array[1]=$sectors->solution_name;
            $solution_array[2]=$sectors->description;
            $solution_array[3]=$sectors->vendor_name;
            $solution_array[4]=$sectors->video_presentation;
            $solution_array[5]=$sectors->start_free_trail;
            $solution_array[6]=$sectors->hardware_package;
            $solution_array[7]=$sectors->pos_market_rating;


        //$solution_array[$sectors->field_id] = $sectors->value;
        $id_string = "solution".$sectors->tab_child_id;
        if ($tab_child_id != $sectors->tab_child_id) {
            $id[$sectors->field_id] = $sectors->title;
        }
        else if ($tab_child_id == $sectors->tab_child_id) {
            $id[$sectors->field_id] = $sectors->title;
        }
    }

print_r($id_string);
print_r($id_array);

首先,你将字符串值赋给$ id然后,只有当第一个if()语句执行其他方面它不会是一个字符串时,$ id才会转换为数组。所以要克服这个问题,在for循环之前保留$ id_array,你可以在另一个变量中捕获字符串。