PHP web sitemi Yii2 çerçevesine taşıdığım için aşağıdaki sorguları yazdım. En iyi 10 bahis kazanmayı göstermek için onları denetleyicime eklemek istiyorum. Birçok Yii2 veritabanı sınıfından geçmeyi denedim ama işe yaramayacağım.Yii2'de ham SQL sorguları gerçekleştiriliyor mu?
Benim tablolar şunlardır:
kullanıcıları: Ben Yii2 almak isteyen sorguları
id | user_id | date_time |...other columns...| balance_return
:
id | user_name | user_status | ...other columns...
bahisler
$query_all = $dbh->query("
SELECT SUM(bets.balance_return) AS total_win
, bets.user_id
, users.user_name
, users.user_status
FROM bets INNER JOIN users ON bets.user_id = users.id
WHERE users.user_status = 'verified'
AND bets.date_time > " . $start_date . "
GROUP BY bets.user_id
ORDER BY total_win DESC
");
Değişken başlangıç_tarihi, time()
'a göre hesapladığım 6 aylık bir dönemdir. Ayrıca, bir kullanıcının aldığı her kazananın sıralamasını belirlediğini lütfen unutmayın.
ikinci sorgu geçerli:
$qwi = $dbh->query("
SELECT SUM(bets.balance_return) AS total_win
, bets.user_id
, users.user_name
, users.user_status
FROM bets INNER JOIN users ON bets.user_id = users.id
WHERE users.user_status = 'verified'
AND bets.date_time > " . $start_date . "
GROUP BY bets.user_id
ORDER BY total_win DESC LIMIT 0,10
");
Soruyu cevapladığınız için çok teşekkür ederiz. İki gün boyunca sıkıştıktan sonra işe almak başardı. Ayrıca bir modül denetleyicisinden '$ connection = Yii :: $ app-> getDb();' dediğimde bir hata aldığımı, '$ connection = \ Yii :: $ app->' ı çağırmam gerektiğini de not etmek istedim. getDb(); 'Neden bu olsun? –
Hata, ad alanı nedeniyle oldu. "Yii" yi eğik çizgi olmadan kullanmak isterseniz, sınıfınızın en üstünde 'Yii kullan' seçeneğini eklemeniz gerekir. – jagsler
En iyi uygulama olarak, Yii nesnesini satır içi kullandığım her yerde '' 'Yii :: $ app ...' '' yapma alışkanlığı haline getiriyorum. –