嗨,我有投资组合表,我要在其中插入我所有的投资组合列表。在插入投资组合列表时,我将插入用逗号分隔的标签。但是在获取数据时,它应该在这个
Controller :
$data["records2"] = $this->portfolio_model->get_portfolio();
$data['mainpage'] = "portfolio";
$this->load->view('templates/template',$data);
型号:
function get_portfolio()
{
$this->db->Select('portfolio.*');
$this->db->From('portfolio');
$this->db->where(array('portfolio.status'=>1));
$q=$this->db->get();
if($q->num_rows()>0)
{
return $q->result();
}
else
{
return false;
}
}
查看:
<div class="materials">
<div class="class453">
<a href="#" class="read_more12">All</a>
</div>
<div class="class455">
<a href="#" class="read_more13">E-Commerce</a>
</div>
<div class="class459">
<a href="#" class="read_more14">Cms</a>
</div>
</div>
<?php
$cnt = 0;
if(isset($records2) && is_array($records2)):?>
<?php foreach ($records2 as $r):?>
<div class="portfolioimages">
<a href="<?php echo $r->website_url;?>" target="_blank"><img src="<?php echo base_url();?>admin/images/portfolio/thumbs/<?php echo $r->image_path;?>" /></a>
</div>
<?php if(($cnt%3) == 0) { echo "<br>"; }
$cnt++; endforeach; endif;?>
</div>
在我的数据库中,它将以以下格式插入数据:
在获取数据时,它应该获取所有数据,但如果我们单击 CMS,则只应显示该特定标签的数据。 例如:如果我们选择 cms,则应显示 1、3、4 id,因为它们是 cms 标签,如果我们选择电子商务,则应显示 1、2、4 id。这些如何完成。
最佳答案
将标签存储在逗号分隔列表中是一种不好的做法。所有标签应始终存储在不同的表中,该表可以通过数据透视表与您的主表相关联。
在你的情况下,一个投资组合似乎可以有很多标签,一个标签可以属于许多投资组合,所以你应该有一个像这样的数据库结构:
投资组合
id
title
description
image
标签
id
tag
porfolio_tag(数据透视表)
portfolio_id
tag_id
但是,如果您想继续当前的设计,只需按原样选择记录,然后使用 php explode功能
关于php - 如何从逗号分隔的数组中获取单个数据并使用 codeigniter php 显示该记录的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40216673/