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 :

afficher un calendrier multi-utilisateur


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut afficher un calendrier multi-utilisateur
    Bonjour,
    J'en revient à mon soucis de planning pour la reserve GD

    J'ai une table dispo avec cette structure :
    id_membre (int)
    date_d (date)

    Les membres rentrent chaque jour de disponibilité.

    J'aimerai afficher dans la partie administration un calendrier en tableau multiutilisateur de cette forme :

    Octobre 1 2 3 4 5 6 7 8 9 10 ...
    Membre1 1 0 0 0 0 0 1 1 0 1
    Membre2 0 0 0 0 0 0 1 1 0 0

    Les 1 représente une disponibilité à la journée et les 0 non.

    je ne sais pas comment faire les requêtes pour réaliser ce tableau.
    j'avais pensé faire une requête sur la table membre avec pour chaque membre une requête sur la table dispo sur chaque jour du mois.

    Mais cela au final va engendrer avec les boucle environ 7500 ou 15000 requêtes à chaque affichage de la page. 250 membres et affichage sur 1 ou 2 mois.

    Auriez vous une idée?

    Je vous remercie beaucoup

  2. #2
    Membre expérimenté
    Inscrit en
    Mai 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 177
    Par défaut
    Tu pourrais pas te faire un tableau PHP de 31 cases rempli avec la valeur 0 et après, tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM dispo order by id_membre, date_d
    Puis, tu boucles sur tes résultats et à chaque fois que tu rencontres une valeur, tu mets la case correspondante à 1.

    Désolé si je suis vague , j'espère quand même que ma solution pourra t'aiguiller sur la bonne voie. Aussi, si tu cherches un bon calendrier, celui là est vraiment cool et quand tu as des questions sur son fonctionnement... ils répondent sur leur forum de support technique (concept auquel je ne suis pas habitué he he he). Seul chose, faut que tu connaisses l'anglais.

    http://www.dhtmlx.com/docs/products/...er/index.shtml

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    je n'ai pas très bien compris ton raisonnement.

    je dois a tout prix conserver la mise en forme que j'ai indiqué :


    Octobre. 1 2 3 4 5 6 7 8 9 10 ...
    Membre1 1 0 0 0 0 0 1 1 0 1
    Membre2 0 0 0 0 0 0 1 1 0 0

  4. #4
    Membre expérimenté
    Inscrit en
    Mai 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 177
    Par défaut
    Désolé d'avoir été si vague, je vais essayer d'être plus précis. Donc d'abord un tableau de 31 cases (comme ça on peut couvrir n'importe quel mois)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $tableauJours = Array();
    $tableauJours["2010-10-01"] = 0;
    $tableauJours["2010-10-02"] = 0;
    ....
    $tableauJours["2010-10-31"] = 0;
    Maintenant que ton tableau est créé, tu vas chercher les données de la table dispo avec un select et tu boucles sur tes enregistrements en mettant à 1 quand la date existe:

    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
     
    $sql = "SELECT * FROM dispo order by id_membre, date_d";
    $resultat = mysql_query($sql) or die(mysql_error());
    $membreCourant = "";
    while ($ligne = mysql_fetch_array($resultat))
    {
         if($membreCourant != $ligne['id_membre'])
         {
              //afficher le contenu du tableau $tableauJours dans un tableau HTML
              $membreCourant = $ligne['id_membre'];
              //remettre des 0 partout dans le tableau
         }
     
         $tableauJours[$ligne['date_d']] = 1;
    }
    C'est comme ça que je m'y prendrais. J'espère que j'ai été plus clair cette fois .

Discussions similaires

  1. [Calendrier] Multi-utilisateurs en php avec les ACL
    Par moabomotal dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 06/12/2005, 17h51
  2. Afficher un calendrier
    Par guillo dans le forum Composants
    Réponses: 1
    Dernier message: 21/06/2005, 21h19
  3. base données avec java mono et multi utilisateurs
    Par Garion dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 03/12/2004, 09h20
  4. Accés multi utilisateurs avec fstab
    Par Sun3clipse dans le forum Administration système
    Réponses: 2
    Dernier message: 26/08/2004, 15h49
  5. Procédure stockée et multi utilisateurs
    Par Bruno34 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/04/2003, 15h32

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