Ben bir veritabanından gelecek olayları görüntülemek gerekir. Ben şu anda geçti bir başlangıç gün bir etkinlik kullanıyorum sorgusu kullandığınızda sorun bunlar geçerli olursa olsun gerçeğin yaklaşan etkinlikleri listesinde alt göstermek olacaktır
Benim tablo (yaml):
columns:
title:
type: string(255)
notnull: true
default: Untitled Event
start_time:
type: time
end_time:
type: time
start_day:
type: date
notnull: true
end_day:
type: date
description:
type: string(500)
default: This event has no description
category_id: integer
Benim sorgu (doktrin):
$results = Doctrine_Query::create()
->from("sfEventItem e, e.Category c")
->select("e.title, e.start_day, e.description, e.category_id, e.slug")
->addSelect("c.title, c.slug")
->orderBy("e.start_day, e.start_time, e.title")
->limit(5)
->execute(array(), Doctrine_Core::HYDRATE_ARRAY);
Temelde ben şu anda oluyor bir etkinlik istiyorum (yani bugün START_DAY ve END_DAY arasında ise) listenin en üstünde olmak. Hatta mümkün ise bunu nasıl yapıyor hakkında gitmek istiyorsunuz? Onlar DQL dönüşmesi oldukça kolaydır çünkü çok çiğ sql sorguları iyi cevaplar.
SOLUTION Based on one of the below answers:
$results = Doctrine_Query::create()
->from("sfEventItem e, e.Category c")
->select("e.title, e.start_day, e.description, e.category_id, e.slug")
->addSelect("c.title, c.slug")
->addSelect("IF(NOW() BETWEEN e.start_day AND e.end_day,0,1) as score")
->orderBy("score, e.start_day, e.start_time, e.title")
->limit(5)
->execute(array(), Doctrine_Core::HYDRATE_ARRAY);