Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/10/2007, 15h09   #1
Membre éprouvé
 
Inscription : août 2006
Messages : 590
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2006
Messages : 590
Points : 401
Points : 401
Par défaut [SQL] faire une moyenne : PHP ou SQL ?

Bonjour,

Je vais mettre en place un raffinement à la c... sur un programme de gestion d'utilisateurs, et le truc consistera à classer les utilisateurs en fonction de leur moyenne d'utilisation quotidienne. Pour ça, je dispose, dans MySQL, de:
1) la date de création du compte
2) le nombre de fois qu'ils s'en sont servi

Est-ce qu'il est possible de faire une requête SQL qui classe en fonction du rapport :
nb de fois /(aujourd'hui - date de création du compte) ?
Ou bien est-ce que je dois créer un autre champ "moyenne" que je recalcule pour l'utiliser comme critère avant de passer ma query en PHP ?

Merci

Hugo
[Hugo] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 15h12   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
tu peux faire faire le calcul directement en SQL

Code sql :
1
2
3
SELECT NbUtilisation/DATEDIFF(NOW(), tonchampdateInscription) AS NbUtilParJour, nomdetonuser
FROM tatable
ORDER BY 1

(non testé)
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 15h13   #3
Membre éprouvé
 
Inscription : août 2006
Messages : 590
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2006
Messages : 590
Points : 401
Points : 401
Oooooooo merveilleux !!!!

Merci beaucoup
[Hugo] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2007, 17h06   #4
Membre éprouvé
 
Inscription : août 2006
Messages : 590
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2006
Messages : 590
Points : 401
Points : 401
Bonjour,

Bon, j'en suis là:

Code :
1
2
3
SELECT 'nom', 'prenom' , DATEDIFF(NOW(), `date`)+1 AS `crit` 
FROM `inscrits`
ORDER BY `crit`
et MySQL est pas très heureux : le champ 'crit' est NULL partout... n'étant pas vraiment un crac dans le domaine, si quelqu'un à des idées, je suis preneur...

Merci beaucoup

Hugo
[Hugo] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2007, 19h30   #5
Membre éprouvé
 
Inscription : août 2006
Messages : 590
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2006
Messages : 590
Points : 401
Points : 401
Ca y est : ce truc roule (sur une base plus simple) :
Code :
1
2
3
4
 
SELECT nb, DATEDIFF(NOW(), date)/nb AS crit 
FROM test
ORDER BY crit
J'espère que j'ai pas un problème de config au boulot... parce que ça roule sur easyphp 2.0... bref, que du bonheur en perspective !

Merci encore
[Hugo] est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h27.


 
 
 
 
Partenaires

Hébergement Web