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).

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 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
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();
J'ai deux soucis pour récupérer les résultats dans la vue.

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

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
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...

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.