Requetes
Résolu
TUCS
-
TUCS -
TUCS -
Bonjour,
J'ai un petit soucis avec une requête...
J'ai dans une bdd les colonnes suivantes: cle, numero_partie, et action.
- La clé est unique pour chaque utilisateur
- Le numero de partie c'est un nombre prédéfini en fonction de la partie qui est lancée
- Et action c'est le nombre de coup qu'il a déjà fait dans la partie.
A chaque coup réalisé, une nouvelle ligne est insérée.
Soit un exemple:
cle: --> numero_partie --> action
moi --> 001 --> 1
moi --> 001 --> 2
moi --> 001 --> 3
xyz --> 001 --> 1
Je souhaite faire une requete qui va chercher le grand chiffre de action pour moi et la partie 001. Soit je voudrais ici qu'il me retourne le "3".
J'ai vu la fonction MAX pour mettre dans les requetes SQL mais je n'arrive pas à faire ça...
Je fais echo $V et rien ne s'affiche.
Pourriez-vous me dire ce qui bloque, je suppose que je l'utilise mal...
Merci d'avance!
J'ai un petit soucis avec une requête...
J'ai dans une bdd les colonnes suivantes: cle, numero_partie, et action.
- La clé est unique pour chaque utilisateur
- Le numero de partie c'est un nombre prédéfini en fonction de la partie qui est lancée
- Et action c'est le nombre de coup qu'il a déjà fait dans la partie.
A chaque coup réalisé, une nouvelle ligne est insérée.
Soit un exemple:
cle: --> numero_partie --> action
moi --> 001 --> 1
moi --> 001 --> 2
moi --> 001 --> 3
xyz --> 001 --> 1
Je souhaite faire une requete qui va chercher le grand chiffre de action pour moi et la partie 001. Soit je voudrais ici qu'il me retourne le "3".
J'ai vu la fonction MAX pour mettre dans les requetes SQL mais je n'arrive pas à faire ça...
$query = 'SELECT MAX(action) FROM mastermind WHERE cle="moi" AND numero_partie="001"'; $infos = $dbh->query($query)->fetchall(); $V =($infos['action']);
Je fais echo $V et rien ne s'affiche.
Pourriez-vous me dire ce qui bloque, je suppose que je l'utilise mal...
Merci d'avance!
Configuration: Windows / Firefox 77.0
A voir également:
- Requetes
- Expliquez les différences entre les différentes requêtes ✓ - Forum Programmation
- Nos systèmes ont détecté un trafic exceptionnel sur votre réseau informatique. cette page permet de vérifier que c'est bien vous qui envoyez des requêtes, et non un robot. que s'est-il passé ? - Forum MacOS
- Réessayez plus tard il est possible que votre ordinateur ou votre réseau envoie des requêtes automatiques. pour la sécurité de nos utilisateurs, nous ne pouvons pas traiter votre demande pour le moment. pour en savoir plus, consultez notre page d'aide. valider - Forum Virus
- N26 votre appareil a envoyé trop de requêtes sur une courte période de temps. veuillez patienter. - Forum Consommation & Internet
- Les requetes - Forum Programmation
2 réponses
Bonjour,
Ta question concernant la requête SQL, j'ai déplacé dans le bon forum.
( à noter.. qu'une requête ça se teste DIRECTEMENT Dans sa bdd (via phpmyadmin par exemple) AVANT de la mettre en place dans son code php )
Et donc, un truc du genre devrait bien fonctionner
Ta question concernant la requête SQL, j'ai déplacé dans le bon forum.
( à noter.. qu'une requête ça se teste DIRECTEMENT Dans sa bdd (via phpmyadmin par exemple) AVANT de la mettre en place dans son code php )
Et donc, un truc du genre devrait bien fonctionner
SELECT * FROM mastermind WHERE cle="moi" AND numero_partie="001" ORDER BY action DESC LIMIT 1
Bonjour,
La solution de jordane45 fonctionne bien mais je voudrais juste expliquer pourquoi ton code d'origine posait problème.
Sur le principe, il est bon. Le problème vient du fait que la colonne MAX(action) n'a pas de nom, elle ne s'appelle pas « action » par défaut, alors que tu cherches
On peut nommer les colonnes de résultat comme on le souhaite en utilisant « AS » dans la requête, ce qui, ici, donnerait :
Xavier
La solution de jordane45 fonctionne bien mais je voudrais juste expliquer pourquoi ton code d'origine posait problème.
Sur le principe, il est bon. Le problème vient du fait que la colonne MAX(action) n'a pas de nom, elle ne s'appelle pas « action » par défaut, alors que tu cherches
$infos['action']dans ton php.
On peut nommer les colonnes de résultat comme on le souhaite en utilisant « AS » dans la requête, ce qui, ici, donnerait :
$query = 'SELECT MAX(action) AS action FROM mastermind WHERE cle="moi" AND numero_partie="001"'; $infos = $dbh->query($query)->fetchall(); $V =($infos['action']);
Xavier
Peux-tu le cloturer?
Merci pour la résolution de mon problème, à bientôt,
Guillaume.