Ahm*_*bal 18 php mysql join codeigniter
我正在使用codeigniter框架来开发一个音乐cms.我在mysql数据库中有3个表,目前我在"相册"表和"模型,控制器"中工作.我想选择"专辑"表1并加入"专辑" - >"cat_id"和"类别" - >"cat_id",并获取所有类别记录.
然后我想在"Soundtrack" - >"album_id"上加入"专辑" - >"album_id",然后获取所有音轨记录A到Z.
请有人帮我显示正确的codeigniter查询,如何SELECT和JOIN表然后从3个表中获取记录,?
表1 - >类别
CAT_ID
cat_name
日期
表2 - >专辑
album_id
ALBUM_TITLE
album_details
表3 - >原声带
album_id
TRACK_TITLE
Shi*_*mas 44
在模型中使用此代码
public function funcname($id)
{
$this->db->select('*');
$this->db->from('Album a');
$this->db->join('Category b', 'b.cat_id=a.cat_id', 'left');
$this->db->join('Soundtrack c', 'c.album_id=a.album_id', 'left');
$this->db->where('c.album_id',$id);
$this->db->order_by('c.track_title','asc');
$query = $this->db->get();
if($query->num_rows() != 0)
{
return $query->result_array();
}
else
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
试试这个
在你的模型中
如果你想要使用所有专辑数据
function get_all_album_data() {
$this->db->select ( '*' );
$this->db->from ( 'Album' );
$this->db->join ( 'Category', 'Category.cat_id = Album.cat_id' , 'left' );
$this->db->join ( 'Soundtrack', 'Soundtrack.album_id = Album.album_id' , 'left' );
$query = $this->db->get ();
return $query->result ();
}
Run Code Online (Sandbox Code Playgroud)
如果你想获得特定的专辑数据使用
function get_album_data($album_id) {
$this->db->select ( '*' );
$this->db->from ( 'Album' );
$this->db->join ( 'Category', 'Category.cat_id = Album.cat_id' , 'left' );
$this->db->join ( 'Soundtrack', 'Soundtrack.album_id = Album.album_id' , 'left' );
$this->db->where ( 'Album.album_id', $album_id);
$query = $this->db->get ();
return $query->result ();
}
Run Code Online (Sandbox Code Playgroud)
试试这个数据......
function get_album_data() {
$this->db->select ( 'album.*,cat.*,s_track.*' )
->from ( 'albums as album' );
->join ( 'categories cat', 'cat.cat_id = album.cat_id')
->join ( 'soundtracks s_tracks ', 's_tracks.album_id = album.album_id');
$query = $this->db->get ();
return $query->result ();
}
Run Code Online (Sandbox Code Playgroud)
虽然为基准尝试这个...
function get_album_datum($album_id) {
$this->db->select ( 'album.*,cat.*,s_track.*' )
->from ( 'albums as album' );
->join ( 'categories cat', 'cat.cat_id = album.cat_id')
->join ( 'soundtracks s_tracks ', 's_tracks.album_id = album.album_id');
$this->db->where ( 'album.album_id', $album_id);
$query = $this->db->get ();
return $query->row();
}7
Run Code Online (Sandbox Code Playgroud)