繁体   English   中英

Codeigniter:将数据库中的多列显示为一列

[英]Codeigniter: Display multiple columns from database as one

我想显示我的数据库中的多个列值。

使用来自模型的查询

$this->db->select('*');
$this->db->from('projectskillslist ps');
$this->db->join('empskillslist s', 's.skillsID = ps.skillsID', 'left');
$this->db->join('projects p', 'p.projectID = ps.projectID', 'left');
$this->db->where('ps.projectID = 1');

$query = $this->db->get();
$result = $query->result_array();
if ($query->num_rows() > 0) {
   return $result;
}
   return false;

在我的控制器中

$data['pSkills'] = $this->emp_model->view_projskills();

查询按预期完美返回:

在此处输入图片说明

现在在我看来,

我想打电话

Title: Project 1
SkillName: JAVA, PHP

到目前为止,我已经这样做了:

    foreach ($pSkills as $data) {
       echo $data['title'];
       echo $data['skillName'];
    }

我得到的结果是

 Title: Project 1
    Skills: PHP
 Title: Project 2
    Skills: JAVA

这确实是一个愚蠢的问题,我已经查找并搜索了相同的问题,但我仍然没有运气。 我希望你能帮助我。 非常感谢!!

试试这个,但首先按项目 ID 和技能 ID 对结果集进行排序。

$this->db->order_by('projectID, skillID');

看法

$lastProjectID = 0;
$p_skills = '';
$p_title = '';

foreach ($pSkills as $data) {

  if ($data['projectID'] !== $lastProjectID) {

    // if there's a title, printIt()
    if ($p_title !== '') {
      printIt($p_title, $p_skills);
    }

    // set new title and skill list
    $p_title = $data['title'];
    $p_skills = $data['skillName'];

    // remember last project 
    $lastProjectID = $data['projectID'];

  } else {

    // append skill name to skills
    $p_skills .= ", " . $data['skillName'];

  }
}

// end of foreach, if there's a title, printIt()
if ($p_title !== '') {
  printIt($p_title, $p_skills);
}

function printIt($title, $skills) {
  echo "Title: $title<br>";
  echo "SkillName: $skills<br>";
}

如果有帮助,请按照以下步骤操作。

第 1 步:您必须连接 projectID GROUP_CONCAT 会有所帮助。

步骤 2. 执行您的 SQL 查询,如下所示

SELECT projectID, skillName, GROUP_CONCAT(projectID) AS projid FROM projectskillslist GROUP BY projid第 3 步:要在视图中显示它,您可以使用 PHP 的 expand() 并对其进行迭代,如果有帮助的话,就像这样..

    foreach ($pSkills as $row) {
    echo $row->title;
    echo explode(',', $row->skillName);
    /*
        or add below line of code  if it doesn't works

    */ 
     //echo str_replace(',', '<br />', $row->skillName);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM