【问题标题】:Extract CSV values from an array and display them Individually as a List从数组中提取 CSV 值并将它们单独显示为列表
【发布时间】:2017-11-13 15:15:08
【问题描述】:

我的数据库中有一个 CSV 值数组,例如 category1[obj1,obj2,obj3..]

查看

<?php echo $row_company->category1;?>

控制器

$row_company = $this->employers_model->get_company_details_by_slug($company_name);

然后,employees_model 调用一个过程,该过程依次执行所需的查询,以这种方式显示 row = category1 的内容,

obj1,obj2,obj3...

我希望能够在没有逗号的情况下显示此结果,并显示为这样的列表

  • obj1
  • obj2
  • obj3..

我正在使用 CodeIgniter MVC 框架,我对 implode 函数的使用有一些模糊的想法,也遇到了 preg_split,但不知道从哪里开始干预,视图或控制器。 任何解决方案的方向都将不胜感激。

详细编辑:row_company。

$row_company = $this->employers_model->get_company_details_by_slug($company_name);      

    if(!$row_company){
        redirect(base_url(),'');
        exit;   
    }

    $company_website = ($row_company->company_website!='')?validate_company_url($row_company->company_website):'';
    $data['row_company']        = $row_company;
    $data['company_logo']       = $company_logo;
    $data['company_join']       = $company_join;
    $data['company_website']    = $company_website;
    $data['company_location']   = $company_location;
    $data['title']              = $row_company->company_name.' jobs in '.$row_company->city;
    $this->load->view('company_view',$data);
}

employers_model 内容

public function get_company_details_by_slug($slug) {
    $Q = $this->db->query('CALL get_company_by_slug("'.$slug.'")');
    if ($Q->num_rows > 0) {
        $return = $Q->row();
    } else {
        $return = 0;
    }
    $Q->next_result();
    $Q->free_result();
    return $return;
}   

程序本身get_company_details_by_slug

BEGIN
SELECT emp.ID AS empID, emp.sts1, pc.ID, emp.country, emp.city, pc.company_name, pc.company_description, pc.company_location, pc.company_website, pc.no_of_employees, pc.established_in, pc.company_logo, pc.company_slug, pc.category1, pc.category2, pc.category3, pc.company_join
FROM `pp_employers` AS emp 
INNER JOIN pp_companies AS pc
WHERE pc.company_slug=slug  AND emp.sts1 ='active';END

【问题讨论】:

  • 你能告诉我们你是如何存储数据的吗?
  • $row_company的内容是什么?
  • 您可以简单地使用explode(',', $value) 将值拆分为值数组。
  • @PratikSoni,通过将 csv 文件上传到包含该特定行的相关数据的数据库中来存储数据。
  • $row_company 只是一个使用模型中的过程调用从数据库中提取值的函数。它可以包含该特定表中的所有值@u_mulder

标签: php mysql codeigniter csv


【解决方案1】:

在参考了许多 codeigniter/php 论坛后想通了。 其实很简单,

<?php $array =  explode(',', $row_company->category1);
                    foreach ($array as $item) 
                    {
                        echo "<li>$item</li>"; 
                    }
?>

感谢 Nigel 指出要使用爆炸功能。

干杯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2013-01-07
    • 2021-09-26
    相关资源
    最近更新 更多