だから私は以下を使用しています:
$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 />");
}
標準:
SELECT `ip`, count(*) as ipcount FROM (`soapi`) GROUP BY `ip` ORDER BY `ipcount` desc LIMIT 5;
そして、最後の (5 番目の) レコードのみがエコーされ、エコーされません ipcount
。
これを回避する別の方法はありますか?私は DataMapper (したがって質問) の学習に取り組んでおり、これのいくつかを理解する必要があります。私は、ORM のこと全体に頭を悩ませているわけではありません。
count(*) as ipcount
面白いselect()
ステートメントなしで設定する方法はありますか? 何らかの理由でそれがトリガーされているとは思わない。これは DataMapper のバグである可能性もありますが、それについては確信が持てません。
また、メソッドを使用しても、ip soapi$r->query()
のようなものを使用すると、最後のエントリ以外は何も返されないことがわかりました。ただし、私が. がない場合は、最後の行のみを返します。SELECT
FROM
WHERE 1;
SELECT * FROM soapi WHERE 1;
*
新しいクエリで確認したところ、すべての列を選択する以外 ( *
) は最後のレコードのみを返します。これに関するどんな助けも素晴らしいでしょう。のようなステートメントを作成できselect *, count(*) as ipcount
ますが、それでも を介してアクセスすることはできません$record->ipcount
。