Il y a quelques semaines de cela je me suis arraché les cheveux pour une requête SQL qui consommait trop les ressources du serveur. Au final c’est moi qui m’y prenait vraiment mal, la solution est toute simple et n’a vraiment rien de compliquée. Il suffit de faire deux requêtes SQL distinctes.
Première requête
SELECT nom,prenom,tel,gsm,adresse,birth, COUNT(idcontact)
from contact WHERE ville = '$ville'
GROUP BY nom,prenom,adresse HAVING COUNT(idcontact) > 1;
Ensuite il suffit de passer ce résultat dans un foreach et de faire une deuxième requête sur le nom et le prénom.
Deuxième requête
SELECT nom,prenom,tel,gsm,adresse,birth,
from contact WHERE ville = '$ville'
AND nom = $nom
AND prenom = $prenom;
Et voila il ne vous reste plus qu’a transformer le résultat. Je ne suis pas du tout pédagogue si mes articles techniques manque d’explication et je pense que c’est le cas n’hésitez pas à poster un commentaire pour me le dire.
J’avoue avoir un peu honte, car sérieusement c’est tout simple. Le fait est quand on passe la majeure partie de son temps à coder avec des CMS ou à faire des requêtes qui ne nécéssite pas plus que des WHERE, on en perd son SQL.
Tu dois même pouvoir faire un GROUP CONCAT sur les id pour avoir toutes les infos qu’il te faut en une requête