Yani aşağıdaki kullanıyorum:
$r = new Record();
$r->select('ip, count(*) as ipcount');
$r->group_by('ip');
$r->order_by('ipcount', 'desc');
$r->limit(5);
$r->get();
foreach($r->all as $record)
{
echo($record->ip." ");
echo($record->ipcount." <br />");
}
Standart:
SELECT `ip`, count(*) as ipcount FROM (`soapi`) GROUP BY `ip` ORDER BY `ipcount` desc LIMIT 5;
Ve ben sadece almak son (beşinci) kaydı dışarı echo'ed ve no ipcount
yankılandı.
Bu dolaşmak için farklı bir yolu var mı? Ben DataMapper (dolayısıyla soru) öğrenme üzerinde çalışan ve bu bazı anlamaya ihtiyacımız var. Oldukça bütün ORM şey etrafında başımı sarılı değil.
Komik select()
deyimi olmadan count(*) as ipcount
ayarlamak için bir yolu var mı? Ben nedense tetikleme sanmıyorum. Bu da DataMapper bir hata olabilir, ama bu daha az eminim.
Ayrıca ben SELECT
ip FROM
soapi {[gibi bir şey kullanın ben $r->query()
yöntemini kullanmak bile o son girişin dışında hiçbir şey dönmez bulundu (3)]}. I SELECT * FROM soapi WHERE 1;
derseniz Ancak (olması gerektiği gibi) her şeyi dönecektir. O yoksa *
sadece son satırı döndürür.
Sadece yeni bir sorgu, tüm sütunları seçme dışında herhangi bir şey ile doğrulandı (*
), sadece son kaydı döndürür. Bu herhangi bir yardım büyük olurdu. Sen select *, count(*) as ipcount
gibi bir açıklama zanaat olabilir ama o hala $record->ipcount
aracılığı erişimi yok.