Ho scritto le query seguenti durante la migrazione del mio sito Web PHP al framework Yii2. Voglio aggiungerli al mio controller in modo da visualizzare le 10 migliori scommesse vinte. Ho provato a passare attraverso molte classi di database Yii2 ma non riesco a farlo funzionare.Esecuzione di query SQL non elaborate in Yii2?
mie tabelle sono:
utenti:
id | user_name | user_status | ...other columns...
scommesse:
id | user_id | date_time |...other columns...| balance_return
Le query che voglio entrare in Yii2 sono:
$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
");
La variabile start_date è un periodo di 6 mesi che calcolo in base a time()
Inoltre, per favore, annoti che balance_return
è ogni vittoria che un utente ottiene così la sua somma determina la classifica.
La seconda domanda è:
$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
");
Grazie mille per aver risposto alla domanda. Sono riuscito a farlo funzionare dopo essere rimasto bloccato per due giorni. Inoltre volevo notare che quando chiamo '$ connection = Yii :: $ app-> getDb();' da un controller del modulo ho ricevuto un errore, ho dovuto chiamare '$ connection = \ Yii :: $ app-> getDb(); 'Perché dovrebbe essere? –
L'errore è dovuto al namespace. Se vuoi usare 'Yii' senza la barra devi aggiungere' usa Yii; 'nella parte superiore della tua classe. – jagsler
Come best practice prendo l'abitudine di fare '' '\ Yii :: $ app ...' '' ovunque io usi l'oggetto Yii in linea. –