Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1549 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  calendrier et base de données !! complex ... [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

calendrier et base de données !! complex ... [résolu]

n°1117709
100top
Posté le 12-06-2005 à 23:47:22  profilanswer
 

bonjours !
voila je veux faire un calendrier pour ma classe !
un seul compte pour tous !
quand il se connecte il peuvent ajouter des trucs dans l'agenda !
je veux quand je crée mon agenda que lorsqu'il y a un evenement il mette en fond la case du jour en rouge
donc je stocke depuis la table des membres dans un tableau array les differentes dates du mois que l'on affiche
et je lui dit in_array( jour_en_cretion , tableau)  
il me dit non !!
voir code
 
 
voila la structure de la table :

Code :
  1. CREATE TABLE `agenda` (
  2.   `id_a` int(10) NOT NULL auto_increment,
  3.   `ag_msg` varchar(250) NOT NULL default '', // message sur la date
  4.   `ag_m` int(3) NOT NULL default '0',  // mois  
  5.   `ag_a` int(4) NOT NULL default '0',  // année  
  6.   `ag_j` int(3) NOT NULL default '0', // jour  
  7.   `ag_heure` int(3) NOT NULL default '0', // heure  
  8.   `ag_duree` int(3) NOT NULL default '0',  // duree  
  9.   `a_type` int(2) NOT NULL default '0',
  10.   PRIMARY KEY  (`id_a`)
  11. ) TYPE=MyISAM AUTO_INCREMENT=48 ;


 

Code :
  1. <?php
  2.     if(!isset($_GET['mois'],$_GET['an']))
  3. {
  4. $ts = mktime();
  5. $tab = getdate($ts);
  6. $_GET['mois'] = $tab['mon'];
  7. $_GET['an'] = $tab['year'];
  8. }
  9. $id_m=$_SESSION['id_m'];
  10. $recherche1=$_GET['mois'];
  11. $recherche2=$_GET['an'];
  12. include('connexion.php');
  13. mysql_connect($serveur, $identifiant, $mdp);
  14. mysql_select_db($bdd) or die($erreur1);
  15. $sql0="SELECT * FROM $table_agenda WHERE ag_m='$recherche1' and (ag_a='$recherche2' or ag_a='3000') and ag_idm='$id_m' order by ag_heure asc";
  16. echo $sql0;
  17. $sql = mysql_query("$sql0" );
  18. echo mysql_error();
  19. $numsite = mysql_num_rows($sql);
  20. $i=0;
  21. $contenu="''";
  22. WHILE($numsite!=$i)
  23.   {
  24.   $contenu .= ",'";
  25.    $contenu .= mysql_result($sql,$i,"ag_j" );
  26.    $contenu .="'";
  27. //;
  28.    $i++;
  29.    }
  30.    $j_agenda = array ($contenu);
  31.    mysql_close(); :hello:
  32.  
  33. function calendrier($jour,$mois,$annee) //renvoi un calendrier
  34. {
  35. //variables
  36. $font_jour_couleur="#003366";
  37. $font_jour="#ffffff";
  38. $bg_jour="#003366";
  39. $bg_reste="#ffaa00";
  40. $bg_occ="000000";
  41. $font="family='Verdana, Arial, Helvetica' size='10Px'  ";
  42. $ts = mktime(1,1,1,$mois,1,$annee); //Recuperation du timestamp du numero du jour de base cad le numero du jour du premier jour du mois ouf !
  43. $tab = getdate($ts); //Recuperation du numero du jour de base, le numero du jour du premier jour du mois
  44. $j = 1 ; //premier jour  
  45. $nbjour = date('t',$ts) ;//nombre de jour dans le mois
  46. $nom_mois = array('Janvier','F&eacute;vrier','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobtre','Novembre','D&eacute;cembre');//Nom des moins in French
  47. //cette sequence corrige le numero du dimanche. PHP donne 0, dans notre cas 7 est préférable, donc..
  48. if($tab['wday'] == 0)
  49.  {
  50.  $dp = 7 ;
  51.  }
  52.  else
  53.  {
  54.  $dp = $tab['wday'] ;
  55.  }
  56. //Affichage de l'entête du calendrier  
  57. echo "<table cellpadding='2' cellspacing='1' border='0' width='450'><tr align='center'><td colspan='7'><center>$jour ".$nom_mois[$mois-1]." $annee</center></td></tr><tr align='center'><td><strong>Lundi</strong></td><td><strong>Mardi</strong></td><td><strong>Mercredi</strong></td><td><strong>Jeudi</strong></td><td><strong>Vendredi</strong></td><td><strong>Samedi</strong></td><td><strong>Dimanche</strong></td></tr>";
  58. //Affichage du calendrier
  59. for($i=1;$i<=42;$i++)
  60.  {
  61.  if($i % 7 == 1 ) //si il reste un, on commence forcement une nouvelle ligne  
  62.   {
  63.   echo "<tr align='center'>";
  64.   }
  65.  if(($dp <= $i)&&($j <= $nbjour))//si nous sommes apres le numero du premier jour et que nous n avons pas
  66.   { //passé le 30 ou 31  
  67.   if($j==$jour) { echo "<td bgcolor='$bg_jour'><center><a href=\"?jour=$j&mois=$mois&an=$annee\"><font color='$font_jour'><span class='Style2'>$j</span></font></a></center></td>"; }
  68. -----
  69. ici la fonction mettre en rouge s'il y a un événement
  70. -----
  71. elseif(in_array($j, $j_agenda)) { echo "<td bgcolor='$bg_occ'><center><a href=\"?jour=$j&mois=$mois&an=$annee\"><font color='$font_jour_couleur'><span class='Style2'>$j</span></font></a></td></center>" ; }
  72. ----
  73. reponse :
  74. Warning: in_array(): Wrong datatype for second argument in calend.php
  75. -----
  76. else { echo "<td bgcolor='$bg_reste'><center><a href=\"?jour=$j&mois=$mois&an=$annee\"><font color='$font_jour_couleur'><span class='Style2'>$j</span></font></a></td></center>" ; }
  77.    //on affiche
  78.   $j++;
  79.   }
  80.   else
  81.   {
  82.   echo "<td></td>"; //sinon case vide
  83.   }
  84. suite du code du calendrier ...
  85. ?>


 
je comprends pas pourquoi ca ne marche pas !!!


Message édité par - janfy - le 13-06-2005 à 01:05:04
mood
Publicité
Posté le 12-06-2005 à 23:47:22  profilanswer
 

n°1117728
100top
Posté le 13-06-2005 à 00:05:36  profilanswer
 

si quelqu'un ne comprends pas le pb n'hesitez pas envoyer un mail ou repondez au topic

n°1117752
FlorentG
Unité de Masse
Posté le 13-06-2005 à 00:23:55  profilanswer
 

Difficile de répondre... "il me dit non !! ", c'est pas un problème valide :D Un logiciel ça ne dit pas non, ça indique soit rien, soit un message, un avertissement ou une erreur :D Et c'est exactement ce qu'ils nous faut, sinon on ne pourra rien faire :(

n°1117760
100top
Posté le 13-06-2005 à 00:35:09  profilanswer
 

FlorentG a écrit :

Difficile de répondre... "il me dit non !! ", c'est pas un problème valide :D Un logiciel ça ne dit pas non, ça indique soit rien, soit un message, un avertissement ou une erreur :D Et c'est exactement ce qu'ils nous faut, sinon on ne pourra rien faire :(


 
 
je l'ai mis dans le code du calendrier
Warning: in_array(): Wrong datatype for second argument in calend.php  in line 83

n°1117765
FlorentG
Unité de Masse
Posté le 13-06-2005 à 00:38:34  profilanswer
 

Ah oups :jap: T'es bien dans la fonction calendrier() ? et j_agenda et bien déclaré en dehors ? Si oui, il faut faire comme ça :

in_array($j, $GLOBALS['j_agenda'])


Ou mettre au début de la fonction (à faire si tu l'utilise plusieurs fois) :

global $j_agenda;

n°1117768
100top
Posté le 13-06-2005 à 00:42:07  profilanswer
 

FlorentG a écrit :

Ah oups :jap: T'es bien dans la fonction calendrier() ? et j_agenda et bien déclaré en dehors ? Si oui, il faut faire comme ça :

in_array($j, $GLOBALS['j_agenda'])


Ou mettre au début de la fonction (à faire si tu l'utilise plusieurs fois) :

global $j_agenda;



 
oui je suis bien dans la fonction !!
ca doit etre ca !!
merci  
( enfin ca ne marche pas mais ya plus l'erreur déjà !!! )  
merci

n°1117776
100top
Posté le 13-06-2005 à 00:48:17  profilanswer
 

dezolé ya encore un pb et la je comprends pas !
$j_agenda est en global  

Code :
  1. $j_agenda = array ($contenu);  // contenu des jours ayant des evenements dans la table mysql
  2. // yen a un uniquement le 4 ( je le sais =) )
  3.    print_r($j_agenda);
  4. if(in_array('4', $j_agenda)) { echo "le 4 ya un truc"; } else { echo "ya rien"; }


 
retour  

Code :
  1. Array ( [0] => '','4' ) // ya bien le 4 dedans  
  2. ya rien // le in_array ne marche pas !!!


Message édité par - janfy - le 13-06-2005 à 00:48:57
n°1117777
FlorentG
Unité de Masse
Posté le 13-06-2005 à 00:50:09  profilanswer
 

Bizarre le contenu de ton array tout de même, y'a pas de clé pour '4'. Essaye avec :

var_dump($j_agenda);


Pour voir si c'est différent

n°1117779
100top
Posté le 13-06-2005 à 00:53:13  profilanswer
 

FlorentG a écrit :

Bizarre le contenu de ton array tout de même, y'a pas de clé pour '4'. Essaye avec :

var_dump($j_agenda);


Pour voir si c'est différent


 
comment je peux faire pour mettre une clé ?
 
 

Code :
  1. array(1) { [0]=> string(6) "'','4'" }
  2. ya rien


marche po :'(

n°1117782
FlorentG
Unité de Masse
Posté le 13-06-2005 à 00:55:09  profilanswer
 

Ok, en fait, là y'a bien une clé. Sauf que dans la valeur, y'a :

'','4'

, et non pas '4' tout court :heink:
 
Il faudrait que le var_dump donne :

array(1) { [0]=> string(6) "4" }


Et là, ça fonctionnerait. Donc il y'a peut-être un problème lors du remplissage de $j_agenda


Message édité par FlorentG le 13-06-2005 à 00:55:18
mood
Publicité
Posté le 13-06-2005 à 00:55:09  profilanswer
 

n°1117783
100top
Posté le 13-06-2005 à 00:58:12  profilanswer
 

en fait comme peut yavoir plusieurs evenement dans ma table agenda
j'ai fait lors de la requete :
 

Code :
  1. mysql_connect($serveur, $identifiant, $mdp);
  2. mysql_select_db($bdd) or die($erreur1);
  3. $sql0="SELECT * FROM $table_agenda WHERE ag_m='$recherche1' and (ag_a='$recherche2' or ag_a='3000') order by ag_heure asc";
  4. $sql = mysql_query("$sql0" );
  5. $numsite = mysql_num_rows($sql);
  6. $i=0;
  7. $contenu="''";
  8. WHILE($numsite!=$i)
  9.   {
  10.   $contenu .= ",'";
  11.    $contenu .= mysql_result($sql,$i,"ag_j" );
  12.    $contenu .="'";
  13. //;
  14.    $i++;
  15.    }
  16.    $j_agenda = array ($contenu);


donc le 1er $contenu="''";  fo le virer ?

n°1117784
FlorentG
Unité de Masse
Posté le 13-06-2005 à 01:00:17  profilanswer
 

Je vois. En fait on peut pas faire comme ça. Là tu créer un tableau avec un seul élément dedans. si tu veux plusieurs éléments dedans, faut faire :

$j_agenda = array();
while($numsite!=$i) {
  $j_agenda[] = mysql_result($sql,$i,"ag_j" );
  $i++;
}


Là, à chaque passage de boucle, il te crééra un élément dans  $j_agenda avec pour valeur le résultat de mysql_result :)

n°1117787
100top
Posté le 13-06-2005 à 01:03:13  profilanswer
 

MERCIIIIIIIIIIIIIIIIIIIIIIIIi
t'es un ange !!
je vais pouvoir me coucher !!!
encore mille merciiiiiii!
Je t'adore !!!

n°1117822
FlorentG
Unité de Masse
Posté le 13-06-2005 à 08:40:56  profilanswer
 

100top a écrit :

t'es un ange !!


Seulement un développeur :D

n°1294297
patemino
Fan Club VP
Posté le 29-01-2006 à 18:16:12  profilanswer
 

C'est bien ce qu'il dit ... :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  calendrier et base de données !! complex ... [résolu]

 

Sujets relatifs
[c++] Inclure des librairies C++ dans des fichiers C [self-resolu][Builder C++ 6] Utilisation dynamique d'une DLL [résolu...]
Cours de base PHP et MYSQLconnection à ma base de données distante
Passer d'une base existante au MCD / MLDBase de données MYSQL et client MS ACCESS : Problème avec champ Date
VBA, Excel, tester si il y a des données externes sur une page.[sql serveur] verification du type de données
Plus de sujets relatifs à : calendrier et base de données !! complex ... [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR