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 :

Ordonner par date et heure sur 2 tables [MySQL]


Sujet :

PHP & Base de données

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut Ordonner par date et heure sur 2 tables
    Salut à tous.
    Je suis entrain de monter une sorte d'agenda sur une base de jMonthCalendar (que je recommande d'ailleurs vivement)
    J'y ai ajouté en fait des possibilités d'ajouts de rappels et de rendez-vous.

    Pour faire simple, lors de l'initialisation de l'agenda, jMonthCalendar réclame un tableau events du style suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var events = [     
        { "EventID": 1, "Date": new Date(2009, 1, 1), "Title": "10:00 pm - EventTitle1", "URL": "#", "Description": "This is a sample event description", "CssClass": "Birthday" },
        { "EventID": 2, "Date": new Date(2009, 1, 2), "Title": "9:30 pm - this is a much longer title", "URL": "#", "Description": "This is a sample event description", "CssClass": "Meeting" }
    ];
    D'un autre côté, j'ai 2 tables (rappels et rendez_vous) contenant chacunes des tuples.
    Je construit donc ce tableau dynamiquement de la manière suivante avant de le passer en argument à l'initialisation de jMonthCalendar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    $db = new DB();
                    $rdvs = $db->query("SELECT * FROM rendez_vous WHERE assigned_to='".$_SESSION['id_user']."' ORDER BY date,heure");
                    $rappels = $db->query("SELECT * FROM rappels WHERE assigned_to='".$_SESSION['id_user']."' ORDER BY date,heure");
     
                    $events = "" ;
                    $event_id = 1 ;
                    $nb_events = mysql_num_rows($rdvs);
                    $nb_rappels = mysql_num_rows($rappels);
     
                    while($rdv = mysql_fetch_array($rdvs))
                    {
                        $annee = substr($rdv['date'],0,4) ;
                        $mois = substr($rdv['date'],5,2)-1 ;
                        $jour = substr($rdv['date'],8,2)-1+1;
                        $title = substr($rdv['heure'],0,5)." - ".$rdv['ville'] ;
                        $events .= "{ \"EventID\":\"".$event_id."\", \"Date\": new Date(".$annee.",".$mois.",".$jour."), \"Title\":\"".$title."\", \"view_URL\": \"includes/content/accueil/popup/view_event.php?id_event=".$rdv['id_rdv']."\",\"edit_URL\": \"includes/content/accueil/popup/edit_event.php?id_event=".$rdv['id_rdv']."\",\"del_URL\": \"includes/content/accueil/popup/delete_event.php?id_event=".$rdv['id_rdv']."\", \"CssClass\":\"Event\" }" ;
                        if($event_id!=$nb_events)
                            $events .= ",";
                        $event_id++ ;
                    }
                    $event_id = 1 ;
                    if($nb_rappels!=0)
                    {
                        $events .= ",";
                        while($rappel = mysql_fetch_array($rappels))
                        {
                            $annee = substr($rappel['date'],0,4) ;
                            $mois = substr($rappel['date'],5,2)-1 ;
                            $jour = substr($rappel['date'],8,2)-1+1;
                            $title = substr($rappel['heure'],0,5)." - ".$rappel['titre'] ;
                            $events .= "{ \"EventID\":\"".$event_id."\", \"Date\": new Date(".$annee.",".$mois.",".$jour."), \"Title\":\"".$title."\", \"view_URL\": \"includes/content/accueil/popup/view_rappel.php?id_event=".$rappel['id_rappel']."\",\"edit_URL\": \"includes/content/accueil/popup/edit_rappel.php?id_event=".$rappel['id_rappel']."\",\"del_URL\": \"includes/content/accueil/popup/delete_rappel.php?id_event=".$rappel['id_rappel']."\", \"CssClass\":\"Remind\" }" ;
                            if($event_id!=$nb_rappels)
                                $events .= ",";
                            $event_id++ ;
                        }
                    }
    Seulement, je me retrouve avec les rappels forcément en dessous des rendez-vous même si l'heure du rappel est plus tôt que celle du rendez-vous (ce qui d'un point de vue algorithmique est logique aux vues de mon code).
    Je vous ai mis une PJ sur laquelle vous pourrez constater le problème.

    Comment faire alors pour avoir le tout ordonné correctement ?
    Merci pour vos conseils.

    Ah oui, j'ai oublié de dire que les rappels sont sur fond rose et les rendez-vous sur fond bleu
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tri avec sort par date et heure
    Par oumokhtar dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 08/09/2009, 01h22
  2. Pb pour Ordonner par date
    Par Nadaa dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 21/08/2007, 11h52
  3. Treeset : objets ordonnés par date
    Par michaelbob dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 18/12/2006, 15h13
  4. la date et heure sur mon formulaire
    Par azde7015 dans le forum Access
    Réponses: 11
    Dernier message: 07/02/2006, 10h40
  5. classer par date les resultats de 2 tables avec UNION
    Par dgedge dans le forum Requêtes
    Réponses: 4
    Dernier message: 14/06/2005, 19h23

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