IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

mcal_list_events ou l'art d'afficher des évènements entre deux dates


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut mcal_list_events ou l'art d'afficher des évènements entre deux dates
    Bonjour,

    J'ai une table, dans laquelle j'ai les champs suivants :

    ID | Daydate (datetime) | login | typologie | commentaires

    Je cherche à afficher différents items :

    1 - Afficher entre deux dates (ex entre le 2012-02-05 18:40:19 et 2012-02-09 06:14:00) les types de typologies entrées et ce, par login.

    2 - Afficher, par login, les typologies entrées (tri par typologie et leur nombre en face).

    Enfin, et pour finir, est-il possible d'afficher dans mon array une colonne avec juste les dates et une seconde avec juste les heures ? (subsidiaire celle-ci).

    J'ai déjà bien avancé sur mon projet, mais là, je me heurte à ces deux items.

    J'ai bien trouvé une fonction, mais incapable de la mettre en place (mcal_list_events). Peut-être une autre possibilité ?

    Je suis un newbie en php, même si j'ai bien saisis les rudiments, là, je m'attaque à plus gros que mes capacités persos.

    Aussi, un exemple de code allant du $req="SELECT.... jusqu'au fameux echo... m'arrangerait. Je pourrai ainsi avancer sur mon projet, tout en modifiant les items et ainsi intégrer les subtilités liées à ces deux demandes.

    Merci pour vos éclaircissements.

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Premières pistes
    Voilà qui est intéressant, j'ai réussi à trouver comment régler mes deux demandes Comment ? Simplement avec la requete :
    "SELECT daydate, typologie, commentaires, login FROM traitement_appels WHERE daydate BETWEEN '2012-02-05 23:00:00' AND '2012-02-18 00:00:00' GROUP BY login desc LIMIT 20"

    Maintenant, et c'est bien là ma faiblesse, je souhaite avoir un formulaire qui me permettra, sans avoir à cliquer sur un ok, simplement en entrant dans deux champs prévus à cet effet, deux dates sous forme YYYY-MM-DD et Y1Y1Y1Y-M1M1-D1D1 et qui me mettra automatiquement ma requete sous la forme :
    "SELECT daydate, typologie, commentaires, login FROM traitement_appels WHERE daydate BETWEEN 'YYYY-MM-DD 00:00:00' AND 'Y1Y1Y1Y1-M1M1-D1D1 00:00:00' GROUP BY login desc LIMIT 20"

    Là, je cale, même après recherche sur Google (celle-ci, j'avoue que ça fait plusieurs semaines que je la cherche avecd'autres requetes).

  3. #3
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    2 - Afficher, par login, les typologies entrées (tri par typologie et leur nombre en face).
    Si tu souhaites faire des tri/classement/ordre, il faut rajouter un ORDER BY.

    Exemple :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT daydate, typologie, commentaires, login
    FROM traitement_appels
    WHERE daydate BETWEEN '2012-02-05 23:00:00'
    AND '2012-02-18 00:00:00'
    GROUP BY login desc
    ORDER BY typologie ASC
    LIMIT 20
    Pour ce qui de placer un nombre en face d'une autre donnée, car c'est de l'interfaçage (Html, Css, Php, etc ...).

    Si les données que tu obtiens ne correspond pas à ce que tu veux (peu importe leur classement, c'est à dire des lignes de trop ou manquantes), le mieux c'est de poster quelques lignes que tu as dans la Bdd, et dire ce qui est à récupérer, ce qui est à exclure.


    je souhaite avoir un formulaire qui me permettra, sans avoir à cliquer sur un ok, simplement en entrant dans deux champs prévus à cet effet, deux dates sous forme YYYY-MM-DD et Y1Y1Y1Y-M1M1-D1D1 et qui me mettra automatiquement ma requete sous la forme
    Là, à part faire du Javascript, je ne vois pas d'autres solution, c'est à dire, lors d'un clic ça ouvrirait un double calendrier pour sélectionner 2 dates.
    Pas simple à mon sens.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Salut

    Si tu souhaites faire des tri/classement/ordre, il faut rajouter un ORDER BY.

    Exemple :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT daydate, typologie, commentaires, login
    FROM traitement_appels
    WHERE daydate BETWEEN '2012-02-05 23:00:00'
    AND '2012-02-18 00:00:00'
    GROUP BY login desc
    ORDER BY typologie ASC
    LIMIT 20
    Pour ce qui de placer un nombre en face d'une autre donnée, car c'est de l'interfaçage (Html, Css, Php, etc ...).
    Avant tout, merci pour cette réponse. Et...Oups, me suis mal exprimé, en fait je cherche à faire un comptage (un login a entré XX fois telle typologie, XX fois telle autre..). J'ai la formule magique pour l'affichage par login, et une autre pour le comptage, mais je n'arrive pas à "imbriquer" les deux...

    Si les données que tu obtiens ne correspond pas à ce que tu veux (peu importe leur classement, c'est à dire des lignes de trop ou manquantes), le mieux c'est de poster quelques lignes que tu as dans la Bdd, et dire ce qui est à récupérer, ce qui est à exclure.
    Pour un centre d'appels naissant, je cherche à créer une interface de reporting. Voici trois ligne d'une base de reporting (que les conseillers alimentent via un formulaire php) :
    ID | daydate | login | typologie | commentaires
    1 | 2012-02-05 18:47:09 | sdupont | réclamation service | no comment
    2 | 2012-02-05 18:48:12 | mdurand | commande cd | no comment
    3 | 2012-02-05 18:48:24 | tdufrais | désabonnement | no comment
    4 | 2012-02-05 18:49:35 | sdupont | commande livre | no comment
    5 | 2012-02-05 18:53:27 | mdurand | commande cd | no comment
    6 | 2012-02-05 18:53:19 | tdufrais | commande cd | no comment
    ...

    Je souhaite avoir un reporting après avoir précédemment sélectionné une date via un formulaire (ie : 05/02/2012) sous la forme :

    sdupont : 2 appels :
    réclamation service : 1
    commande livre : 1

    mdurand : 2 appels
    commande cd : 2

    tdufrais : 2 appels :
    désabonnement : 1
    commande cd : 1

    Appels du jour : 6

    Là, à part faire du Javascript, je ne vois pas d'autres solution, c'est à dire, lors d'un clic ça ouvrirait un double calendrier pour sélectionner 2 dates.
    Pas simple à mon sens.
    En fait, on est obligé de cliquer sur un bouton pour envoyer la requete, si je comprends bien. On ne peut pas simplement choisir la date et HOP la page se rafraichit avec le resultat de la requete ? (oui, je sais, I dream..)

    Avec ce code en exemple, je pense que je pourrai développer la totalité de mon outil pour mon équipe. Merci encore pour ce précieux coup de main, vraiment. J'avance petit à petit l'impression d'être comme un gamin qui découvre les propriétés chimiques dans sa chambre eheh.

  5. #5
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    En fait, on est obligé de cliquer sur un bouton pour envoyer la requete, si je comprends bien. On ne peut pas simplement choisir la date et HOP la page se rafraichit avec le resultat de la requete ? (oui, je sais, I dream..)
    Si, c'est possible.

    Il faut faire un peu de JS, d'exploiter un évènement onchange.
    Ceci dit, par moment tu parles de "saisi de date", et maintenant "de choix". Cela suppose des contrôles différent (champ text, select, etc ...).

    Un exemple avec un menu déroulant type SELECT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form id="form_choix" action="choix.php" method="post">
    <fieldset>
        <select name="choix_date" onchange="window.document.getElementById('form_choix').submit()">
            <option value="1">Un</option>
            <option value="2">Deux</option>
            <option value="3">Trois</option>
        </select>
    </fieldset>
    </form>
    Si tu n'as pas une liste de choix, je ne vois pas d'autres moyen que de créer un formulaire avec un bouton de type submit.
    Ceci dit, on peu toujours exploiter l'évènement "onmouseover", c'est à dire "au survol", m'enfin, coté ergonomique je ne sais pas, faut voir.

Discussions similaires

  1. Affichers des valeurs entre deux nombres.
    Par anirolf dans le forum Débuter
    Réponses: 10
    Dernier message: 13/11/2011, 00h35
  2. nombre des jours entres deux dates
    Par adriennoob dans le forum VBA Access
    Réponses: 4
    Dernier message: 04/09/2009, 14h04
  3. afichage des champs entre deux dates
    Par nanine85 dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/05/2009, 15h19
  4. Liste des mois entre deux dates
    Par ginkas31 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/03/2008, 16h33
  5. Générer le listing des jours entre deux dates
    Par gsmdu62 dans le forum Langage
    Réponses: 8
    Dernier message: 01/05/2006, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo