je suis bloqué plusieurs jours sur cette requete sql que je voudrais traduire en dql symfony mais je me plante.
Je ne sais que faire, svp orientez-moi.
merci!
SELECT c.id,c.nom,c.prenom,c.date_naissance,c.mere,c.created_at
FROM personnel c
INNER JOIN (
SELECT nom,prenom,date_naissance, mere,MAX(created_at) AS dernier
FROM personnel
WHERE nom ='nom_utilisateur'
GROUP BY prenom, nom, date_naissance, mere
) t
ON t.nom = c.nom
AND t.prenom = c.prenom
AND t.date_naissance = c.date_naissance
AND t.mere = c.mere
AND t.dernier = c.created_at
ORDER BY c.nom ;
L'écriture en majuscules est considérée comme une parole criée et diminue autant la lisibilité du texte que sa compréhension. Les majuscules abusives sont donc interdites aussi bien dans les titres que dans les messages.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
la requête interne ne se suffit-elle pas à elle même ?
SELECT id,nom,prenom,date_naissance, mere,MAX(created_at) AS dernier
FROM personnel
WHERE nom ='nom_utilisateur'
GROUP BY prenom, nom, date_naissance, mere
ORDER BY nom
public function searchng($nom)
{
$em= $this->getEntityManager();
$query = $em->createQuery("
SELECT nom,prenom,date_naissance, mere,MAX(created_at) AS dernier
FROM App\Entity\CasierJudiciaire
WHERE nom = :name
GROUP BY prenom, nom, date_naissance, mere
ORDER BY nom ;
")
->setParameter('name', $nom)
;
return $query->getResult();
Mon message plus haut n'était pas là pour faire joli, merci d'en tenir compte.
il est très courant (pour ne pas dire que c'est l'usage) en SQL de mettre les instructions en majuscules, ce n'est pas du "cri" ou autres, c'est juste la pratique qui veut ça (voir la partie Base de données du forum)
j'ai pris soin de prendre les moindre détails de votre recommandation
mais toujours au même niveau.
mon repository
public function search($nomp)
{
$em= $this->getEntityManager();
$query = $em->createQuery("
select nom,prenom,date_naissance, mere,MAX(created_at) AS dernier
from App\Entity\CasierJudiciaire
where nom = :nom
group by prenom, nom, date_naissance, mere;
")
->setParameter('nom', $nomp)
;
return $query->getResult();
}
mon controleur
public function search(Request $request,CasierJudiciaireRepository $casierJudiciaireRepository): Response
{
$casiers = $casierJudiciaireRepository->search(
$request->get('nom')
);
return $this->render('casier_judiciaire/search_result.html.twig', [
'casiers' => $casiers,
]);
}
J'ai changé comme indiqué ci-haut
mais toujours le même message d'erreur
[Syntax Error] line 0, col 166: Error: Expected end of string, got 'nom'
J'en ai vraiment besoin, aussi n'y aurait-il pas une autre solution?
merci de bien m'aider !
Question bête mais dans ton entité y a-t-il vraiment une propriété nom?
Si tu fais un var_dump de $_POST ou $_GET qu'est-ce que ca t'affiche ?
Et dans le détail de la page débug, ca ne t'affiche pas la fonction dans laquelle le problème apparait ?
EDIt : si tu supprime ton ; à la fin de ta requête ca fait quoi? Car il n'y en a pas dans la documentation
- Edité par lindadu01 2 décembre 2020 à 16:53:55
Parfois, arrêter 5 minutes son développement permet de mieux repartir face à un problème ;)
traduction sql en dql
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Parfois, arrêter 5 minutes son développement permet de mieux repartir face à un problème ;)