Ürün durum ve durum 0 a eşit olan 2 kişi var Admin ve Hasan ama sorguda admin dönüyor.
ORDER BY urunler.puan DESC"
Burda puan için DESC parametresini kullandığınız için puanı yüksekten aşağı doğru sıralar . Admin kullanıcının puanı yüksek olduğu için o gelir.
Belki şu şekilde olur..
$sorgula=$db->prepare("SELECT * FROM urunler INNER JOIN urun ON urunler.urun_durum=urun.durum WHERE durum = '0' and id=:urun_id ORDER BY urunler.puan DESC");
while($row =*$sorgula->fetch(PDO::FETCH_ASSOC)) { echo $row['k_adi']; }..
durum = '0' burdaki tırnaklara dikkat