将数据库值放入数组中会显示编码器中的错误


Putting data base values into array shows error in 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;
}

将其更改为以下内容并尝试。

   $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,您可以在另一个变量中捕获字符串。