Bonjour,
je suis en train de faire un site web de pari sur le football (uniquement entre amis sans argent ^^).
Je suis en train de faire la partie du classement du championnat de football, pour ca j'ai fait ma requête SQL (MySql) qui marche bien (version Beta non optimisé pour le moment).
J'ai donc créer une requête sous Symfony
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 select equipe_lib,sum(case when equipe_id = equipe_id_dom and resultat_but_dom > resultat_but_ext then 3 when equipe_id = equipe_id_dom and resultat_but_dom = resultat_but_ext then 1 when equipe_id = equipe_id_dom and resultat_but_dom < resultat_but_ext then 0 when equipe_id = equipe_id_ext and resultat_but_dom < resultat_but_ext then 3 when equipe_id = equipe_id_ext and resultat_but_dom = resultat_but_ext then 1 when equipe_id = equipe_id_ext and resultat_but_dom > resultat_but_ext then 0 end) as Points , max(matchs_journee) as J, sum(case when equipe_id = equipe_id_dom then resultat_but_dom when equipe_id = equipe_id_ext then resultat_but_ext end) as Bp, sum(case when equipe_id = equipe_id_dom then resultat_but_ext when equipe_id = equipe_id_ext then resultat_but_dom end) as Bc, ((sum(case when equipe_id = equipe_id_dom then resultat_but_dom when equipe_id = equipe_id_ext then resultat_but_ext end)) - (sum(case when equipe_id = equipe_id_dom then resultat_but_ext when equipe_id = equipe_id_ext then resultat_but_dom end))) as Diff from equipe e join matchs m on m.equipe_id_ext = e.equipe_id or m.equipe_id_dom = e.equipe_id join resultat r on r.matchs_id = m.matchs_id group by equipe_id order by Points DESC,Diff DESC, Bp DESC
J'ai deux soucis pour récupérer les résultats dans la vue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 $q = $this->createQuery('c') ->select ('equipe_lib,sum(case when equipe_id = equipe_id_dom and resultat_but_dom > resultat_but_ext then 3 when equipe_id = equipe_id_dom and resultat_but_dom = resultat_but_ext then 1 when equipe_id = equipe_id_dom and resultat_but_dom < resultat_but_ext then 0 when equipe_id = equipe_id_ext and resultat_but_dom < resultat_but_ext then 3 when equipe_id = equipe_id_ext and resultat_but_dom = resultat_but_ext then 1 when equipe_id = equipe_id_ext and resultat_but_dom > resultat_but_ext then 0 end) AS Points, max(matchs_journee) as J, sum(case when equipe_id = equipe_id_dom then resultat_but_dom when equipe_id = equipe_id_ext then resultat_but_ext end) as Bp, sum(case when equipe_id = equipe_id_dom then resultat_but_ext when equipe_id = equipe_id_ext then resultat_but_dom end) as Bc, ((sum(case when equipe_id = equipe_id_dom then resultat_but_dom when equipe_id = equipe_id_ext then resultat_but_ext end)) - (sum(case when equipe_id = equipe_id_dom then resultat_but_ext when equipe_id = equipe_id_ext then resultat_but_dom end))) as Diff') ->from ('Equipe e') ->leftjoin ('Matchs m on m.equipe_id_ext = e.equipe_id or m.equipe_id_dom = e.equipe_id') ->leftjoin ('Resultat r on r.matchs_id = m.matchs_id') ->groupby ('equipe_id') ->orderby ('Points DESC,Diff DESC, Bp DESC'); return $q->execute();
Le premier est que si je fais un var_dump($classementequipes) dans ma vue, j'obtiens une page blanche, le chargement est long et rien....
De plus, la requête que j'obtiens est
Le problème est que je n'ai plus mes Alias mis dans ma requête, en plus en vérifiant la requête Doctrine sur MySql, j'obtiens des résultats différents...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT e.equipe_id AS e__equipe_id, e.equipe_lib AS e__equipe_lib, SUM(case when e.equipe_id = equipe_id_dom and resultat_but_dom > resultat_but_ext then 3 when e.equipe_id = equipe_id_dom and resultat_but_dom = resultat_but_ext then 1 when e.equipe_id = equipe_id_dom and resultat_but_dom < resultat_but_ext then 0 when e.equipe_id = equipe_id_ext and resultat_but_dom < resultat_but_ext then 3 when e.equipe_id = equipe_id_ext and resultat_but_dom = resultat_but_ext then 1 when e.equipe_id = equipe_id_ext and resultat_but_dom > resultat_but_ext then 0 end) AS e__0, MAX(matchs_journee) AS e__1, SUM(case when e.equipe_id = equipe_id_dom then resultat_but_dom when e.equipe_id = equipe_id_ext then resultat_but_ext end) AS e__2, SUM(case when e.equipe_id = equipe_id_dom then resultat_but_ext when e.equipe_id = equipe_id_ext then resultat_but_dom end) AS e__3, ((SUM(case when e.equipe_id = equipe_id_dom then resultat_but_dom when e.equipe_id = equipe_id_ext then resultat_but_ext end)) - (SUM(case when e.equipe_id = equipe_id_dom then resultat_but_ext when e.equipe_id = equipe_id_ext then resultat_but_dom end))) AS e__4 FROM equipe e, matchs m, resultat r GROUP BY e.equipe_id ORDER BY e__0 DESC,e__4 DESC, e__2 DESC
Quelqu'un aurait-il une idée sur Pourquoi j'ai une page blanche avec mon var_dump ? Et Pourquoi je n'obtiens pas le même résultat SQL ?
Merci d'avance pour votre aide.
Partager