Problème avec une requete - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Problème avec une requete (/showthread.php?tid=1749) |
Problème avec une requete - Seals - 12-09-2007 Bonjour, j'ai un porblème avec une requète pourtant assez simple, la voici : Code PHP :
La requète ne retourne aucune erreur, c'est simplement que $var['classement'] et $var['nombre'] ne contiennes rien. Pour comprendre ce que j'ai voulut faire : Je vais chercher le champ "nombre" de la table "combient" qui contien le nombre de joueurs (j'update le nombre à chaque inscription), Ensuite je compte le nombre de d'entrées dans ma table membre dont le champ points et inscription (le timetamp) sont superieur au nombre de points et à la date d'inscription du membre. Merci d'avance si quelqu'un peu m'aider à résoudre ce problème. RE: Problème avec une requete - NicoMSEvent - 12-09-2007 il me semble qu'il y a des problemes de syntaxe... essaye de réécrire ta requete avec cette syntaxe : Code : SELECT ... FROM table1 RE: Problème avec une requete - Seals - 12-09-2007 Je viens d'essayer, toujours le même problème. Je pense que je vais être obliger de faires 2 requètes : Code PHP :
:pleure2: RE: Problème avec une requete - NicoMSEvent - 12-09-2007 je n'arrive pas a comprendre la structure de ta base de données, ni vraiment ce que tu compte en sortir... pourrais-tu détailler un peu plus? (une question claire entraine une réponse claire ^^) Edit : pour savoir combien de personnes tu as dans la base de données, il suffit de faire un SELECT count(*) from membre Il vaut mieux éviter les champs qui sont une valeur calculée... et puis ce n'est pas parce que ta requete ne tombe pas en erreur qu'elle est bonne pour autant... Entre 2 arguments d'un WHERE, on trouve généralement un AND ou un OR, pas une virgule... RE: Problème avec une requete - Seals - 12-09-2007 NicoMSEvent a écrit :il suffit de faire un SELECT count(*) from membre Justement non, car je ne vois pas comment compter le nombre de joueurs qui on un nombre de point supperieur au membre, et à la fois compter le nombre d'entrée dans la table, en une seul requète. :heuuu: C'est pour ça que j'ai créee une autre table avec un champ et une seul entrée qui contien le nombre de joueur. Citation :je n'arrive pas a comprendre la structure de ta base de données, ni vraiment ce que tu compte en sortir... pourrais-tu détailler un peu plus? Ok je réexplique ^^ Déjà, je veux compter le nombre d'entrée de la table membres qui ont un nombre de point suppérieur à $start['points'] (qui contien le nombre de point du joueur) pour connaitre le classement du joueur. Ensuite je veux selectionner le champ nombre dans la table combient, qui contien le nombre de joueurs inscrit. Pour avoir par exemple ceci : Votre classement : 3 / 1200 ma table membre se présente comme ça : id / pseudo / points (il y a d'avantage de champs mais se sont les seuls qui nous interessent et la table combient : nombre / avec une seul entrée qui contien le nombre de joueur. RE: Problème avec une requete - NicoMSEvent - 12-09-2007 ceci ne se sert que de la table membre... c'est un peu tricher vu que je me sert de select imbriqués (fonctionne a partir de MySQL 4.1, donc si tu as un tout vieux serveur ça risque de ne pas fonctionner) Code : $requete = mysql_query("SELECT et si tu ne connais que l'identifiant de ton perso et pas ses points, tu pourrais même faire ceci (ça t'éviterait encore une requete), surtout si les points risquent de changer régulierement, même une fois connecté...: Code : $requete = mysql_query("SELECT RE: Problème avec une requete - Seals - 12-09-2007 Merci, le problème c'est que j'avais déjà songé aux requètes embriqués, et ce qui ne vas pas, c'est que ça ne compte pas comme une seul requète mais chaque SELECT compte pour une requète. Et comme je suis limité par mon hebergeur pour le nombre de requètes par jours, c'est pour ça que j'essayais de n'en faire qu'une au lieux des deux que j'ai posté plus haut. Mais bon, là je pense que je n'ai aps le choix donc ... je vais laisser deux requètes ^_^ RE: Problème avec une requete - Kalan - 18-09-2007 Lors de l'utilisation d'une fonction d'aggrégation (MAX, COUNT, SUM etc...) dans une reqête ramenant d'autres colonnes "unitaires", il est nécessaire (en SQL standard donc sans doute aussi avec MySQL) de préciser quelles sont les colonnes de regroupement. Dans ton cas, la requête suivante devrait fonctionner (j'espère) : SELECT c.nombre, COUNT(m.pseudo) AS classement FROM combient c LEFT JOIN membres m ON condition de jointure WHERE m.points>='" . $start['points'] . "', m.inscription>='" . $start['inscription'] . " GROUP BY nombre" (et sans doute faut-il aussi ajouter la condition de jointure dans ton LEFT sans quoi ca risque de pas passer). |