Bonsoir à tous,
Je rencontre une vraie difficulté avec la rédaction de requetes mysql complexes.... Malgré mes recherches et lectures, aucun de mes essais n'aboutit... Donc, j'aurai 3 questions bien précises en fait, et qui sont liées car concernent la meme page :
1°/ QUESTION GENERALE MYSQL :
J'ai un tableau qui affiche diverses données. Je veux que l'utilisateur puisse cliquer sur le titre des colonnes, afin de trier les résultats selon le critère qu'il a choisi. Pour pouvoir faire ceci, est-ce que je dois n'avoir qu'une seule requete pour récupérer mes résultats ? Car à priori, je me dis que pour pouvoir appliquer un "ORDER BY" à tous les résultats, il faut qu'ils soient tous issus de la meme requete, non ?
2°/ QUESTION SYNTAXE REQUETE MYSQL :
(Il s'agit donc ici de la requete concernée par la question 1. Donc je pars à priori sur la contrainte que je suis obligée de récupérer TOUTES mes données dans 1 seule et même requete.)
Je veux récupérer la liste de tous les membres de mon site, avec pour chacun, diverses infos réparties dans d'autres tables de la meme base de données. J'utilise donc ce type de requete :
Cependant, certains membres n'ont pas d'entrée dans la table1 ou dans la table4 par exmple. Et du coup, mysql les filtre, et ils ne sont pas pris en compte dans les résultats. Donc mon soucis, c'est que quand je lui indique ou récupérer quelles infos, il en fait des condition qui doivent etre remplies. Or je veux qu'il m'affiche aussi les membres qui renvoient des valeurs "null" pour certains champs... J'ai testé avec des LEFT JOIN, mais sans aucun succès... je suis noyée !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 "SELECT b.userid, b.username, a.nb_pts, d.name, d.id FROM (table1 AS a, table2 AS b,table3 AS c, table4 AS d) WHERE b.userid = a.userid AND c.clanid = a.clanid AND c.userid = a.userid AND d.id = a.clanid"
3°/ QUESTION SYNTAXE REQUETE MYSQL :
Pour finir, l'autre problème que je rencontre. Toujours avec le même protocole qu'au dessus, je voudrais en plus des différentes infos sur le membre, récupérer l'ip et la date de sa dernière connexion, qui sont stockés dans la table CONNEXIONS. Cela correspond donc à la requete suivante :
Cependant, toujours pareil : je voudrais récupérer cette info dans la même requete que pour les autres infos. Cependant, j'ai l'impression que le "ORDER BY date DESC LIMIT 1" -qui ne doit s'appliquer qu'à cette partie de la requete- va poser problème pour "intégrer" cette requete à une requete déjà complexe....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 "SELECT ip, date FROM connexions WHERE userid='".$userid."' ORDER BY date DESC LIMIT 1"
J'ai essayé d'être la + claire dans mes explications, en tout cas dans la mesure du possible... Bien entendu, je suis toute disposée à donner + d'infos ou reformuler autrement ce qui ne serai pas clair, suffit de demander ! ;-)
En tout cas merci d'avance à ceux qui pourront m'aider, car là je désespère , et je pense même à supprimer les fonctionnalités que je voulais sur ma page, ce qui pour moi constitue le constat d'échec le + cuisant...!
Merci de disposer tes requêtes sur plusieurs lignes (comme je viens de le faire) afin de faciliter la lecture
Partager