Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 29/11/2010, 09h10   #1
Membre actif
 
Inscription : juin 2006
Messages : 545
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 545
Points : 174
Points : 174
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
morgan47 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 15h09   #2
Membre actif
 
Tobbi Filteau
Inscription : mai 2010
Messages : 176
Détails du profil
Informations personnelles :
Nom : Tobbi Filteau

Informations forums :
Inscription : mai 2010
Messages : 176
Points : 177
Points : 177
Tu pourrais pas te faire un tableau PHP de 31 cases rempli avec la valeur 0 et après, tu fais:

Code :
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
osuwariboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 17h07   #3
Membre actif
 
Inscription : juin 2006
Messages : 545
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 545
Points : 174
Points : 174
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
morgan47 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 17h57   #4
Membre actif
 
Tobbi Filteau
Inscription : mai 2010
Messages : 176
Détails du profil
Informations personnelles :
Nom : Tobbi Filteau

Informations forums :
Inscription : mai 2010
Messages : 176
Points : 177
Points : 177
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 :
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 :
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 .
osuwariboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h55.


 
 
 
 
Partenaires

Hébergement Web