使用codeigniter开发图片相册,查询选择图片?

时间:2018-04-29 04:43:48

标签: mysql codeigniter

我正在使用codeigniter开发一个Web应用程序。在那里,我正在制作一个部分来显示像facebook这样的截图。 image1

为此,我创建了两个数据库表。一个用户名id保留相册名称。一个用于保持图像名称与相册id​​。这里我提供两个表的截图。 image1

image2

我在专辑表中为一个用户提供了很多专辑。现在我只为test.h输入了一个数据。我可以从一个专辑中只选择一个图像来创建专辑视图,就像在Facebook中一样希望我有在这个问题的顶部显示为screenshot.I在模型中创建这样的查询以选择图像。

$username=$this->session->userdata('username');
         $this->db->select('id');
         $this->db->where('email',$username);
         $query=$this->db->get('user');
         foreach ($query->result() as $row)
         {
             $user_id= $row->id;

         }



         $this->db->select('*');
         $this->db->where('album_images.user_id',$user_id);
         $this->db->from('album_images');
         $this->db->join('album', 'album.id = album_images.album_id');

         $query = $this->db->get();
         return $query->result();

如何改进此代码以从每个相册中仅选择一个图像,并将该图像的所有详细信息(如图像ID,album_id,album_name,image_name)传递给视图?

1 个答案:

答案 0 :(得分:0)

试试这个

$this->db->select('uai.album_id, ua.album_name, uai.id as image_id, uai.image_name');
$this->db->from('user as u');
$this->db->join('album as ua', 'ua.user_id = u.id', 'left');
$this->db->join('album_images as uai', 'uai.user_id = u.id AND uai.album_id = ua.id', 'left');
$this->db->where('u.email',$this->session->userdata('username'));
$this->db->group_by('uai.user_id, uai.album_id');
$this->db->order_by('ua.album_name ASC');
$query = $this->db->get();
return ($query->num_rows() > 0) ? $query->result() : false;

输出将如下

Array
(
    [0] => stdClass Object
        (
            [album_id] => 1
            [album_name] => Apple
            [image_id] => 1
            [image_name] => Apple1.jpg
        )

    [1] => stdClass Object
        (
            [album_id] => 2
            [album_name] => Orange
            [image_id] => 3
            [image_name] => Orange1.jpg
        )

)

image_name将从album_images

返回一张图片
ex. `[image_name] => Apple1.jpg` from (Apple1.jpg,Apple2.jpg,Apple3.jpg ..etc)