AMELIORATION D'un calendrier de recherche sur base sql

AMELIORATION D'un calendrier de recherche sur base sql - PHP - Programmation

Marsh Posté le 10-05-2009 à 21:06:21    

je remercie la personne qui peut me donner un coup de mains sur le sujet je coince un  peu
 
Voilà j'ai un calendrier qui fonctionne avec une base sql  
 
il est composé de trois page une page mise à jour des événements  
 
une page qui affiche les évenements : nouv.php
 
et page qui affiche les ancien évenements  
 
sur ma page événement quand je fais une recherche en cliquant sur le mois on va dans les mois précédents , et j'aimerais tout simplement que quand on clique sur un mois précedent la page qui s'affiche soit celle du premier jour du mois ( alors qu'atuellement le retour d'un mois en arriere affiche le jour actuel ) alors on est obligé de choisir ensuite un jour sur le calendrier pour quelle s'actualise et idem quand on avance  
 
 
la page ou le calendrier et en place : j'ai mis en bleu la partie qui concerne le calendrier retour et avance dans le temps par les mois
 

Code :
  1. <?php
  2. include ("connexion.php" );
  3. function mysql_date($champ)
  4. {
  5.   $annee=substr($champ,0,4);
  6.   $mois=substr($champ,5,2);
  7.   $jour=substr($champ,8,2);
  8.   return $jour;
  9. }
  10. function premier_jour_du_mois($mois,$annee)
  11. {
  12.    $intPremierJour = date("w",mktime(0,0,0,$mois,1,$annee));
  13.    if($intPremierJour == 0) $intPremierJour = 7; // si c'est un dimanche
  14.    return $intPremierJour-1;
  15. }
  16. function nbjour($m,$a)
  17. {
  18.    if(($a%4)==0)
  19.    {
  20.    $fev=29;
  21.    }
  22.   else
  23.    {
  24.   $fev=28;
  25.    }
  26. $mois = array(0,31,$fev,31,30,31,30,31,31,30,31,30,31);
  27. for($x=1;$x<13;$x++)
  28. {
  29.   if($m == $x)
  30.   {
  31.    return $mois[$x];
  32.   }
  33. }
  34. }
  35. function lister_table()
  36. {
  37.   $table="nouv";
  38.   $date = array();
  39.   $query = "SELECT * FROM table";
  40.   $result = mysql_query($query);
  41.   while ($val = mysql_fetch_array($result))
  42.   {
  43.    $date =mysql_date($val["date"]);
  44.    echo $date;
  45.   }
  46. }
  47.     function afficheMois($mois, $annee)
  48.     {
  49.   $tab = getdate();
  50.   $jourc = $tab["mday"];
  51.   $anneec = $tab["year"];
  52.   $moisc = $tab["mon"];
  53.         $labelMois = array(" ","Janvier", "F&eacute;vrier", "Mars", "Avril",
  54.                     "Mai", "Juin", "Juillet", "Ao&ucirc;t", "Septembre",
  55.                     "Octobre", "Novembre", "D&eacute;cembre" );
  56.         $labelJour = array("Lu.","Ma.","Me.","Je.","Ve.","Sa.","Di." );
  57.   $nbJours=nbjour($mois,$annee);
  58.   $css = "text"; 
  59.         echo "<div id='titre-calendrier'>
  60.           <table border=0 align='center'> \n";
  61.  
  62.   $mp=$mois+1;
  63.   $mm=$mois-1;
  64.   $ap=$annee+1;
  65.   $am=$annee-1;
  66.   $acp=$annee;
  67.   $acm=$annee;
  68.  
  69.   if($mp==13)
  70.    {
  71.     $mp=1;
  72.     $acp=$acp+1;
  73.     if($acp==2038)
  74.     {
  75.      $acp=1980;
  76.     }
  77.    }
  78.   if($mm==0)
  79.    {
  80.     $mm=12;
  81.     $acm=$acm-1;
  82.     if($acm<1980)
  83.     {
  84.      $acm=2037;
  85.     }
  86.    }
  87.  
  88.   if($ap>2037){$ap=1980;}
  89.   if($am<1980){$am=2037;}
  90.  
  91.   echo "
  92.   <tr>".
  93.   //modifier les liens ci-dessous avec votre chemin
  94.   "<td colspan=\"4\" class=\"$css\"><a href=\" http://essai.net/nouv.php?mois=$mm [...] gt;&lt;img src=\"arrow_left.gif\" border=\"0\">".
  95.   "</a> $labelMois[$mois] <a href=\" http://www.essai.net/nouv.php?mois [...] gt;&lt;img src=\"arrow_right.gif\" border=\"0\"></a></td>";
  96.         echo "<td colspan=\"3\" align=\"right\" class=\"$css\"><a href=\" http://www.essai.net/nouv.php?mois [...] gt;&lt;img src=\"arrow_left.gif\" border=\"0\"> ".
  97.   "</a>$annee<a href=\" for ($i = 0; $i < 7; $i++) {
  98.             echo "<td class=\"$css\">$labelJour[$i]</td>";
  99.         }
  100.         echo "</tr>\n";
  101.        
  102.         echo "<tr>";
  103.         for ($i = 0; $i < premier_jour_du_mois($mois,$annee); $i++)
  104.   {
  105.             echo "<td></td>";
  106.         }
  107.       /********************************/
  108.          for ($i = 1; $i <= $nbJours; $i++)
  109.    {
  110.              if (($i-1 + premier_jour_du_mois($mois,$annee)) % 7 == 0)
  111.     {
  112.                  echo "</tr>\n<tr>";// Retour &agrave; la ligne chaque Lundi
  113.              }
  114.     if(($i-1==$jourc-1)&&($annee==$anneec)&&($mois==$moisc))
  115.     {
  116.      $cssClass = "datejour";
  117.      $htmltext = "<td align=\"right\" class=\"$cssClass\">$i</td>";
  118.     }
  119.              else
  120.     {
  121.      $cssClass = "date";
  122.      $htmltext = "<td align=\"right\" class=\"$cssClass\">$i</td>";
  123.     }
  124.     /*****************/
  125.     $debut_mois = date("Y-m-d", mktime(0,0,0,$mois,1,$annee));
  126.     $fin_mois = date("Y-m-d", mktime(0,0,0,$mois,$nbJours,$annee));
  127.  
  128.     $query = "SELECT * FROM nouv where date >='$debut_mois' and date <='$fin_mois' ORDER BY date";
  129.     $result = mysql_query($query);
  130.     while ($val = mysql_fetch_array($result))
  131.     {
  132.      $date = mysql_date($val["date"]);
  133.      $id = $val["id"];
  134.      if($i==$date)
  135.       {
  136.        $cssClass = "date";
  137.        $htmltext = "<td align=\"right\" class=\"$cssClass\"><a href=nouv.php?ref=$id\" class=\"lien\" title=\"date &eacute;v&eacute;nement\">$i</a></td>";
  138.       }
  139.     }
  140.     echo $htmltext;
  141.          }
  142.   /******************************/
  143.         echo "</tr>";
  144.         echo "</table></div>";
  145. ?>


 
 
 
la page qui affiche les donnée recupérées par ref=?id  
 
 
 

Code :
  1. <?php
  2. include ("connexion.php" );
  3. $d=getDate();
  4. $m = $_GET["mois"];
  5. $a = $_GET["annee"];
  6. if((!isSet($m)) ||(!isSet($a)))
  7. {
  8.   AfficheMois($d["mon"],$d["year"]);
  9. }
  10. else
  11. {
  12.   AfficheMois($m,$a);
  13. }
  14. function mysql_date_fr($champ)
  15. {
  16. $annee=substr($champ,0,4);
  17. $mois=substr($champ,5,2);
  18. $jour=substr($champ,8,2);
  19. return $jour."-".$mois."-".$annee;
  20. }
  21. $ref_event = $_GET["ref"];
  22. $query = "SELECT * FROM nouv where id=\"$ref_event\" ";
  23. $result = mysql_query($query);
  24. while ($val = mysql_fetch_array($result))
  25. {
  26. $id = $val["id"];
  27. $date = mysql_date_fr($val["date"]);
  28. $journee = mysql_date_fr($val["journee"]);
  29. $jour = $val["jour"];
  30. $mois = $val["mois"];
  31. echo " ".$journee." ".$jour." ";
  32. echo " ".$mois." ";
  33. }
  34. mysql_close();
  35. ?>

Reply

Marsh Posté le 10-05-2009 à 21:06:21   

Reply

Marsh Posté le 11-05-2009 à 00:48:17    

hi, deja  
 
pour ta fonction premier jour, utilise "N" au lieux de "w", ca evite de faire le bblabla apres
 
pour ta fonction nbjour, utilise date("t", .....)
 
dans affiche mois, regarde du coté de strftime pour la localisation des date,
 
pour ton autre fichier,
pareil du coté de strftime,
ensuite echappe tes valeurs avec mysql_real_escape_string
 
mysql_close() sert uniquement pour les connections persistente,
 
 
sinon pour ton code met pas du HTML dans du PHP, mais plutot l'inverse
 
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed