0

SQLコードをアクティブレコードに変更してみます。元のコードとアクティブレコードを試してみてください。そしてエラーメッセージ。どこが間違っているのか教えてください。ありがとう。

SELECT `emlakilan`.`id`, `emlakdurum`.`durum`,`emlaktip`.`tip`,`semtler`.`semt`,`emlakilan`.`fiyat`,`emlakilan`.`tarih`,`resim`.`r1` FROM ucburcak.`emlakilan`
INNER JOIN `semtler` ON `emlakilan`.`semtId` = `semtler`.`semtid`
INNER JOIN `emlaktip` ON `emlakilan`.`emlakTipId` = `emlaktip`.`id`
INNER JOIN `emlakdurum` ON `emlakilan`.`emlakDurumId` =`emlakdurum`.`id`
LEFT JOIN `resim` ON `emlakilan`.`resimId` = `resim`.`id`
WHERE `emlakdurumId`=3 ORDER BY `emlakilan`.`id` DESC LIMIT 4;

//そしてここでアクティブレコード機能

public function kucuk_ilan($durum ='3') // $durum:1=>tümü 2=>kiralık 3=>satılık 4=>takas
    {
            $query = $this->db->select('emlakilan.id, emlakdurum.durum, emlaktip.tip, semtler.semt, emlakilan.fiyat, emlakilan.tarih, resim.r1')
                              ->from('emlakilan')
                              ->join('semtler','emlakilan.semtId' === 'semtler.semtid','inner')
                              ->join('emlaktip','emlakilan.emlakTipId'==='emlaktip.id','inner')
                              ->join('emlakdurum','emlakilan.emlakDurumId'==='emlakdurum.id','inner')
                              ->join('resim','emlakilan.resimId'==='resim.id','left')
                              ->where('emlakdurumId'===$durum)
                              ->order_by('emlakilan.id','desc')
                              ->limit(4);
            $query = $this->db->get('emlakilan');

            return $query->result_array();
    }

そして、エラーメッセージ:

エラー番号:1066

一意ではないテーブル/エイリアス:'emlakilan'

SELECT emlakilanidemlakdurumdurumemlaktiptipsemtlersemtemlakilanfiyatemlakilantarihresimr1FROM(emlakilanemlakilan)INNER JOIN semtlerON INNER JOIN emlaktipON INNER JOIN emlakdurumON LEFT JOIN resimON WHERE 0IS NULLORDERBY emlakilaniddesc LIMIT 4

ファイル名:C:\ Program Files \ EasyPHP-12.1 \ www \ 3burcak \ system \ database \ DB_driver.php

行番号:330

手伝ってくれてありがとう。

4

1 に答える 1

0

したがって、1。「from」行を削除します。2。間違った場所での結合

これを試して:

public function kucuk_ilan($durum ='3') // $durum:1=>tümü 2=>kiralık 3=>satılık 4=>takas
{
        $query = $this->db->select('emlakilan.id, emlakdurum.durum, emlaktip.tip, semtler.semt, emlakilan.fiyat, emlakilan.tarih, resim.r1')
                          ->from('emlakilan')
                          ->join('semtler','emlakilan.semtId = semtler.semtid','inner')
                          ->join('emlaktip','emlakilan.emlakTipId = emlaktip.id','inner')
                          ->join('emlakdurum','emlakilan.emlakDurumId = emlakdurum.id','inner')
                          ->join('resim','emlakilan.resimId = resim.id','left')
                          ->where('emlakdurumId', $durum)
                          ->order_by('emlakilan.id','desc')
                          ->limit(4);
        $query = $this->db->get('emlakilan');

        return $query->result_array();
}
于 2013-03-27T13:05:49.800 に答える