0

我需要从 db 中为具有外部键的一行选择一个图像路径,但我有许多用于该外部键“id_ext”的图像。

这是我的php函数代码:

function oferte_speciale() {

    $sql="SELECT t1.*, t2.*, t3.*,t4.*,t5.*
            FROM anunturi t1 
            INNER JOIN tip_proprietate t2 ON t1.tip = t2.id_prop
            INNER JOIN anunt_preturi t3 ON t1.id_anunt = t3.ext
            INNER JOIN anunturi_images t5 ON t1.id_anunt = t5.id_ext ORDER BY `sort` DESC LIMIT 1
            INNER JOIN tranzactie t4 ON t1.tranzactie = t4.id_tranzactie
            WHERE t1.special=1 ORDER BY `data` DESC LIMIT 14" ; 




        $stmt = $this->dbh->prepare($sql);
        $stmt->execute();

        foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $result) 
        {
            $pret=strlen($result['pret_normal']);
            if($pret==4) $pretul=substr($result['pret_normal'], 0, 1).".".$pretul=substr($result['pret_normal'], 1, 4);
            if($pret==5) $pretul=substr($result['pret_normal'], 0, 2).".".$pretul=substr($result['pret_normal'], 2, 5);
            if($pret==6) $pretul=substr($result['pret_normal'], 0, 3).".".$pretul=substr($result['pret_normal'], 3, 6);
            if($pret==7) $pretul=substr($result['pret_normal'], 0, 2).".".$pretul=substr($result['pret_normal'], 2, 4)
            .".".$pretul=substr($result['pret_normal'], 4, 7);
            if($pret==8) $pretul=substr($result['pret_normal'], 0, 2).".".$pretul=substr($result['pret_normal'], 3, 5)
            .".".$pretul=substr($result['pret_normal'], 5, 8);
            if($pret==9) $pretul=substr($result['pret_normal'], 0, 3).".".$pretul=substr($result['pret_normal'], 3, 6)
            .".".$pretul=substr($result['pret_normal'], 6, 9);
            if($result['tranzactie']=='2') $luna="/luna"; else $luna="";
            $special[]='
            <li>
              <div class="image">
              <img src="'.$result['den_imag'].'" alt="" />
              <span><a href="#" class="decor">'.$result['den_tranzactie'].' '.$result['den_prop'].' '.$pretul.' €'.$luna.'</a></span>
              </div>
            </li>';
        }
        return $special;
}

我该如何解决?提前致谢!

4

1 回答 1

0

您需要使用GROUP BY并且需要将 LIMIT 作为 1.like

WHERE t1.special=1 ORDER BY `data` GROUP BY 't1.ext' DESC LIMIT 1" ; 

id_ext主表中的自动增量字段在哪里t1

于 2013-10-30T12:05:59.460 回答