0

CodeIgniter でクエリを実行したいと考えています。

クエリは

"SELECT * FROM td_album,td_image
     WHERE td_album.album_id=td_image.album_id
          AND td_album.album_id='$id'
          AND (td_image.image_name='$name' OR td_image.image_id='$image_id');"

CodeIgniter クエリで実行すると、次のように記述します。

$query = $this->db->select('*')
                        ->from('td_image')
                        ->join('td_album', 'td_album.album_id = td_image.album_id')
                        ->like('td_image.image_id', $image_id)
                        ->or_like('td_image.image_name', $image_name)
                        ->and_like('td_album.album_id',$id)
                        ->get('', $this->limit, $this->offset);

しかし、なぜこれがうまくいかないのかわかりません。

編集

このエラーがスローされます:

致命的なエラー: 189 行目の /home/koushani/public_html/jmssimplex.com/application/admin/models/gallery_model.php の未定義メソッド CI_DB_mysql_driver::and_like() の呼び出し

4

2 に答える 2

3

and_like はアクティブなレコード関数ではないため、クエリで複数の like を使用できます

これを試して

$query = $this->db->select('*')
                        ->from('td_image')
                        ->join('td_album', 'td_album.album_id = td_image.album_id')
                        ->like('td_image.image_id', $image_id)
                        ->or_like('td_image.image_name', $image_name)
                        ->like('td_album.album_id',$id)
                        ->get('', $this->limit, $this->offset);

別の方法は

$array = array('td_image.image_id' => $image_id, 'td_album.album_id' => $id);
$this->db->select('*');
$this->db->from('td_image');
$this->db->join('td_album', 'td_album.album_id = td_image.album_id');
$this->db->like($array);
$this->db->or_like('td_image.image_name', $image_name);
$this->db->limit($this->limit, $this->offset);
$query = $this->db->get();
于 2013-02-08T13:18:37.310 に答える
0

次のように書く必要があります

$this->db->select('*')
                ->from('td_image,td_album')
                ->where('td_album.album_id', 'td_image.album_id')
                ->where('td_album.album_id', $id)
                ->where('td_image.image_name='.$name.' OR td_image.image_id='.$image_id);
$query = $this->db->get();
于 2013-02-08T13:08:50.397 に答える