Accueil > Forum > > > > fonction sql avec retour de valeur mensuelle
fonction sql avec retour de valeur mensuelle
lundi 12 juin 2006 à 14:20:54 |
fonction sql avec retour de valeur mensuelle

gabs77
|
bonjour, je cherche a faire une fonction sql en php qui me retournerai le nb de fois qu'apparait une donnée dans une table sur un etendue de mois cad que g une table avec un id et qq propriété ainsi qu'une date et je voudrai savoir le nb de fois que figure dans la base de donnée cette propriété en janvier, février, mars ... je voudrais que sa me donne un truc du style janvier : 3 fois, fevrier : 2 fois, mars : 0 fois, ... voici pour le moment ma fonction: ====================== function requete_date($champ) { $sql1 = "SELECT COUNT(*) FROM histo". " WHERE date_fin BETWEEN '$date' AND '$date2' AND $champ "; $req1 = mysql_query($sql1) or die(mysql_error()); if ($data1 = mysql_result($req1,0)) { return $data1['date']; } }
|
|
lundi 12 juin 2006 à 14:24:05 |
Re : fonction sql avec retour de valeur mensuelle

gabs77
|
le fait est que je l utilise deja bcp dans mon script selon different criteres mais je ne parviens pas a le faire comme cela a moins de rappeller la fonction pour chacun des criteres et pour chacun des mois ce ki reviendrai a appeler la fonction nb de critere * nb de mois soit par exemple 6 criteres sur 6 mois fait 36 appel ce ki en fait pas mal il me faudrait un moyen plus simple si c possible
|
|
lundi 12 juin 2006 à 14:54:34 |
Re : fonction sql avec retour de valeur mensuelle

coockiesch
|
Salut! Y'a un champ qui contient le nom du mois? Ou bien une date? En quel format? Quel nom de champ? Parce que avec GROUP BY et count on doit pouvoir faire qqch! :) Tu peux nous montrer la structure de ta table? @++ R@f www.allpotes.ch: Photos, humour, vidéos, gags, ... "On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
|
|
lundi 12 juin 2006 à 15:01:11 |
Re : fonction sql avec retour de valeur mensuelle

gabs77
|
voila ma table histo id_historique INT autoincrement type_inter VARCHAR type_mat VARCHAR date_début DATE (donc de la forme 0000/00/00) date_fin DATE ... ( et encore d autre critères) et g fais sa aussi pour recup le mois du champ date $date_temp2 = $data['date_début']; $annee_temp2 = strtok($date_temp2,"-"); $mois_temp2 = strtok("-"); $jour_temp2 = strtok("-"); qui pouurait nous etre utile pour la suite (enfin je pense !!)
|
|
lundi 12 juin 2006 à 15:10:53 |
Re : fonction sql avec retour de valeur mensuelle

coockiesch
|
Oki! Et tu veux compter sur quel champ, je n'ai pas compris (dsl, boolay d'un jour, boolay tjs, ^^) @++ R@f www.allpotes.ch: Photos, humour, vidéos, gags, ... "On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
|
|
lundi 12 juin 2006 à 15:21:57 |
Re : fonction sql avec retour de valeur mensuelle

gabs77
|
lol en fait je veux compte le nb de fois qu apparait le critere demandé a sur plusieur mois cad si je ve savoir combien de fois de janvier a mars que installation apparait alors le resultat sera par exemple janvier : 3 fevrier : 2 mars : 5 avec une requete similaire a sa : function requete_date($champ) { $sql1 = "SELECT COUNT(*) FROM histo". " WHERE date_fin BETWEEN '$date' AND '$date2' AND $champ "; $req1 = mysql_query($sql1) or die(mysql_error()); if ($data1 = mysql_result($req1,0)) { return $data1['id_historique']; } }
$install = requete_date("type_inter='installation'"); echo $install;
|
|
lundi 12 juin 2006 à 15:38:41 |
Re : fonction sql avec retour de valeur mensuelle

coockiesch
|
Salut! Et qqch dans le genre, ça marche? "SELECT count(id_historique) as nb FROM histo WHERE date_fin BETWEEN '$date' AND '$date2' GROUP BY MONTH(date_fin)" @++ R@f www.allpotes.ch: Photos, humour, vidéos, gags, ... "On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
|
|
mardi 13 juin 2006 à 16:16:18 |
Re : fonction sql avec retour de valeur mensuelle

gabs77
|
nan sa ne me donne pas ce ke je voulais mais merci quand mm g chercher toute la nuit et je suis parvenu a faire ce ke je desirai ++
|
|
mardi 13 juin 2006 à 18:31:45 |
Re : fonction sql avec retour de valeur mensuelle

coockiesch
|
Oki... Tu as fait comment? @++ R@f www.allpotes.ch: Photos, humour, vidéos, gags, ... "On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
|
|
mercredi 14 juin 2006 à 09:13:12 |
Re : fonction sql avec retour de valeur mensuelle

gabs77
|
voila ce que g fait, g tout d abord créer 3 fonctions une pour compter le nb de fois qu'il apparait, une pour déterminer en sec l'interval entre la date de début et la date de fin pour chaque donnée enregistré dans l'historique (pour ma part c des dates d interventions pour calculer la durée d intervention) et enfin une pour convertir les durées des secondes en mois, jour, heures, minutes par contre ceci n 'est qu'un extrait car les appels de fonctions sont plus nombreuses mais c exactement sa ce ke g fait
voila les fonctions : ============ function requete_date($table,$champ) { $sql1 = "SELECT COUNT(*) FROM $table ". " WHERE $champ "; $req1 = mysql_query($sql1) or die('E_req_dep_install '.mysql_error()); if ($data1 = mysql_result($req1,0)) { return $data1['date_fin']; break; } }
function requete_duree($table,$champ) { $sql = "SELECT * FROM $table WHERE $champ "; $req = mysql_query($sql) or die (mysql_error()); $i = 0; while ($data = mysql_fetch_array($req)) { $date_temp2 = $data['date_début']; $annee_temp2 = strtok($date_temp2,"-"); $mois_temp2 = strtok("-"); $jour_temp2 = strtok("-"); $heure_temp2 = $data['heure_début']; $H_temp2 = strtok($heure_temp2,":"); $M_temp2 = strtok(":"); $date_temp1 = $data['date_fin']; $anne_temp1 = strtok($date_temp1,"-"); $mois_temp1 = strtok("-"); $jour_temp1 = strtok("-"); $heure_temp1 = $data['heure_fin']; $H_temp1 = strtok($heure_temp1,":"); $M_temp1 = strtok(":"); $sec = date("U",mktime($H_temp1,$M_temp1,0,$mois_temp1,$jour_temp1,0))- date("U",mktime($H_temp2,$M_temp2,0,$mois_temp2,$jour_temp2,0)); $sec = str_replace("-","",$sec); $i = $i + $sec; } return $i; break; }
function convert_date($sec) { if($sec<60) {$interval="Moins d'1 minute"; } elseif($sec<3600) {$interval=date("i",$sec)."min"; } elseif($sec<86400) {$interval=(date("H",$sec)-1)."h, ".date("i",$sec)."min "; } elseif($sec<2678400) {$interval=(date("d",$sec)-1)."j, ".date("H",$sec) ."h ".date("i",$sec)."min"; } else {$interval=(date("m",$sec)-1) ." mois, ".date("d",$sec)."j "; } return $interval; break; }
ensuite g effectuer mais appel de fonction avec une boucle pour enregister en chacune des variables avec l indice (c similaire a des arrays) indiquant le mois concerné
for($i=$mois;$i<=$mois2;$i++) { $date = $an.'-'.$i.'-01'; $date2 = $an .'-'.$i.'-31'; $inst[$i] = requete_duree($table_hist, " Installation AND date_fin BETWEEN '$date' AND '$date2' "); $nb_inst[$i] = requete_date($table_hist, " Installation AND date_fin BETWEEN '$date' AND '$date2' "); $instC[$i] = convert_date($inst[$i]).'('.$nb_inst[$i].')'; $dep[$i] = requete_duree($table_hist," Depannage AND date_fin BETWEEN '$date' AND '$date2' "); $nb_dep[$i] = requete_date($table_hist," Depannage AND date_fin BETWEEN '$date' AND '$date2' "); $depC[$i] = convert_date($dep[$i]).'('.$nb_dep[$i].')'; }
pour finir je refais la mm boucle un pe plus loin pour le mettre sous forme de tableau HTML ce qui affichera autant de tableau kil y a de mois pris en compte
for($i=$mois;$i<=$mois2;$i++) { $date = $an.'-'.$i.'-01'; $date2 = $an.'-'.$i.'-31'; echo'<table><tr><td>'.$i.'</td></tr>'; echo'<tr><td>Installation/Depannage</td></tr>'; echo'<tr><td>'.$instC[$i].'/'.$depC[$i].'</td></tr>'; echo'</table></td><td>'; }
|
|
Cette discussion est classée dans : fonction, date, mysql, sql, retour
Répondre à ce message
Sujets en rapport avec ce message
Retour à la ligne [ par philagui ]
Bonjour,je fais afficher tous les resultats d'un champ d'une DB MySQL par l'intermédiaire du script suivant:$sql="SELECT Titre FROM Tableaux WHERE 1";
pb de SQL [ par DocteurVB ]
bonjour à tous !!!j'a un pb j'essai de faire passer cette requette : Create View `vProposer`(`IdPro`,`IdVd`,`IdCont`,`Type`,`Resultat`,`TypeRes`,`Date
Affichage de date MySQL [ par mightteam ]
Salut a tous,alors voila je cherche une simple fonction qui me permettrais d'inverser les date de MySQLActuellement elle sortent comme suit : AAAA-MM-
Date mysql [ par theseif ]
Bonjour à vous, Le script ci-dessous me sert à enregistre une date saisie en français dans BD mysql, mais sa ne marche pas.Pouvez-vous me le corriger?
modifier format d'une date extraite d'une base SQL [ par titsuisse ]
Bonjour,Je pense que ce point a déjà du être aborder cependant je n'ai rien trouvé qui me satisfasse (en faite rien qui marche).Voilà, j'ai une table
Problème de comparaison de date ! [ par punkybreizh ]
Bonjour à tous, Depuis quelques jours je bloque sur une de mes pages de mon site qui permet en fait de comparer une date se trouvant dans une base de
afficher age compris entre 2 valeur grace a une base sql help [ par guigui2mars ]
hello voila je veux pouvoir grace a une date de naissance qui est inscrite dans la bas de donnée arrivé a afficher l'intervalle d'age ( ex 18 - 25 ans
zut sa fonction besoin d'aide [ par speedylol ]
bonjour voilà je créer un script de messagerei online le probléme que j ai c'est que l'update ne fonction pas seirez vous m'aider svp?????$sql = "SELE
Fonction php dans fichier à part??? [ par z980x ]
Bonjour à tous,je suis en train de travailler sur un projet dans lequel je dois me connecter à une base de données pour récupérer des infos.Pas de pro
Compatibilité du timestamp (mysql 4 / 5) [ par christobal ]
Bonjour,J'ai une ch'tit fonction pour convertir un timestamp au format 0000-00-00 00:00:00 en FRfunction convert_date($timestamp){ return date('d-m-Y
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|