公開されているすべてのレコードを返すクエリに取り組んでおり、最新のupdated_versionでグループ化して並べ替えています。
次に、その結果をフィルタリングして、過去24時間、週、および月に更新された結果を表示します。
すべての作品はダンディです。ただし、これら3つの日付基準のそれぞれでレコードが更新されていない場合は、「レコードは更新されていません」とエコーするという条件を追加したいと思います。
クエリでこれらのグループを分離してそれをチェックできるか、あるいはループに変数を設定できるかどうか知りたいです。ループの問題は、ループ内で0の結果条件を取得できることですが、ループ内をチェックしているため、ループ内の各レコードに対して「結果が見つかりません」というエコーが表示されます。
OK、クエリは次のとおりです。
//return all unpublished records
$draftEntries = Doctrine::getTable("foo")
->createQuery()
->where('published = 0')
->groupBy('updated_at')
->orderBy("updated_at DESC")
->execute();
そしてループ:
$message .= "These profiles were edited within the last 24 hours: \n";
foreach ($draftEntries as $entry) {
$currentDay = substr($entry['updated_at'], 0, 10);
$condition = false;
if($currentDay == $today) {
$condition = true;
$message .= $entry['last_name'] . ", " . $entry['first_name'] . "\n";
else {
$message .= "There were records updated yesterday";
echo $condition;
}
}
これは3つのループのちょうど上にありますが、あなたは私の意図の要点を理解していると思います。明らかに、これは次を返すループです。
昨日更新された記録がありました。昨日更新された記録がありました。昨日更新された記録がありました。..。
これは望ましくありません。
それで、クエリから、groupByが0より大きいかどうかを確認できますか?確かに、結果を正しく取得するために3つのクエリを設定しなくても、これを実行できますか?