【问题标题】:display only datas that contain images from a list of item仅显示包含项目列表中图像的数据
【发布时间】:2016-04-16 11:47:53
【问题描述】:

这里我有一个包含图像和非图像的项目列表,我想显示具有图像的项目.. 这是我的浏览页面

 <?php foreach($clients as $row){?>
 <?php $images=json_decode($row->image);{?>
 <?php if($images){;?>
    <div class="client"> <img src="<?php echo base_url();?>images/<?php echo $images[0];?>" alt="" class="grayscale wow bounceIn"  data-wow-delay=".1s"> </div>

 <?php }}}?>

这是我的控制器..

public function index($p_id=null)
{
    $data['active_mn']='index';
    $data['clients']=$this->Nowaste_model->get_clients($p_id=4,6,0);
    $this->load->view('index',$data);
}

这是我的模型

public function get_clients($p_id,$limit,$offset)
  {

  $this->db->select('client.*','category.id');
  $this->db->join('category','category.id=client.category_id');
  $this->db->order_by('client.id','desc');
  $this->db->where('category.id',$p_id);
  $query = $this->db->get('client',$limit,$offset);
  return $query->result();
}

这是我的表名客户端

id  image                        category_id
1   ["upld-file1460797715.jpg"]     6
2   ["upld-file1460797733.jpg"]     6
3   ["upld-file1460797831.jpg"]     6
4   ["upld-file1460797847.jpg"]     6
5   ["upld-file1460797864.jpg"]     6
6   ["upld-file1460797882.jpg"]     6
7     null                          6
8     null                          6
9     null                          6
10    null                          6

我的加入表名类别如下所示

id  category_name   parent_id
    6   builders        4
    4   client          0
    7   hospitals       4
    8   municipalties   4

这里面临的问题是所有数据都显示在这里,我不需要我只需要要显示的图像。如果删除限制,我将获取所有图像,但我也想使用限制

【问题讨论】:

  • 使用echo $this-&gt;db-&gt;last_query(); 打印您的查询。直接在 phpmyadmin 中检查您的查询是否有错误
  • 检查您的$p_id 中您传递给get_clients() 的内容
  • 如果你得到它,请标记正确答案@MAHAMMED

标签: php mysql codeigniter


【解决方案1】:

在模型中试试这个代码

public function get_clients($p_id,$limit,$offset)
{

   $this->db->select('client.*','category.id');
   $this->db->join('category','category.id=client.category_id');
   $this->db->order_by('client.id','desc');
   $this->db->where('category.id',$p_id);
   $this->db->where('client.image !=', 'NULL');
   $query = $this->db->get('client',$limit,$offset);
   return $query->result();
}

【讨论】:

  • where 条件中使用的语法是错误的...通过像这样更改它,我明白了。 $this->db->where('client.image !=', 'NULL');
【解决方案2】:

将您的获取客户端功能更改为如下内容:

$query = new Query;
$query  ->select(['SELECT COLUMNS']) 
        ->from('TABLE_NAME_1')
        ->join(  'JOIN_TYPE',
                'TABLE_NAME_2',
                'TABLE_NAME_2.COLUMN =TABLE_NAME_1.COLUMN'
            );
$command = $query->createCommand();
$data = $command->queryAll();
return $data;

【讨论】:

  • 不..它在相同的模式下。我想问题出在我的模型上
  • 您需要将 print_r($clients); 放在 foreach 循环上方。另外,请告诉我您的代码得到了什么结果?
  • array().iam 变成这样
  • 那么,您在 $clients 中没有得到任何数据。这意味着您的查询有问题。
【解决方案3】:

我已经像这样改变了我的模型,我明白了

 public function get_clients($p_id,$limit,$offset)
  {
   $this->db->select('client.*','category.id');
   $this->db->join('category','category.id=client.category_id');
   $this->db->order_by('client.id','desc');
   $this->db->where('client.image !=', 'NULL');
   $query = $this->db->get('client',$limit,$offset);
   return $query->result();
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 2010-12-26
    • 2015-11-28
    • 2011-02-03
    • 2012-12-05
    • 1970-01-01
    • 2015-10-12
    相关资源
    最近更新 更多