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

  FORUM HardWare.fr
  Programmation
  PHP

  AMELIORATION D'un calendrier de recherche sur base sql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

AMELIORATION D'un calendrier de recherche sur base sql

n°1882736
philou422
Posté le 10-05-2009 à 21:06:21  profilanswer
 

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=\" http://www.essais.net/nouv.php?moi [...] &annee=$ap "> <img src=\"arrow_right.gif\" border=\"0\"></a> </td></tr>";
  98.  
  99.         echo "<tr>";
  100.         for ($i = 0; $i < 7; $i++) {
  101.             echo "<td class=\"$css\">$labelJour[$i]</td>";
  102.         }
  103.         echo "</tr>\n";
  104.        
  105.         echo "<tr>";
  106.         for ($i = 0; $i < premier_jour_du_mois($mois,$annee); $i++)
  107.   {
  108.             echo "<td></td>";
  109.         }
  110.       /********************************/
  111.          for ($i = 1; $i <= $nbJours; $i++)
  112.    {
  113.              if (($i-1 + premier_jour_du_mois($mois,$annee)) % 7 == 0)
  114.     {
  115.                  echo "</tr>\n<tr>";// Retour &agrave; la ligne chaque Lundi
  116.              }
  117.     if(($i-1==$jourc-1)&&($annee==$anneec)&&($mois==$moisc))
  118.     {
  119.      $cssClass = "datejour";
  120.      $htmltext = "<td align=\"right\" class=\"$cssClass\">$i</td>";
  121.     }
  122.              else
  123.     {
  124.      $cssClass = "date";
  125.      $htmltext = "<td align=\"right\" class=\"$cssClass\">$i</td>";
  126.     }
  127.     /*****************/
  128.     $debut_mois = date("Y-m-d", mktime(0,0,0,$mois,1,$annee));
  129.     $fin_mois = date("Y-m-d", mktime(0,0,0,$mois,$nbJours,$annee));
  130.  
  131.     $query = "SELECT * FROM nouv where date >='$debut_mois' and date <='$fin_mois' ORDER BY date";
  132.     $result = mysql_query($query);
  133.     while ($val = mysql_fetch_array($result))
  134.     {
  135.      $date = mysql_date($val["date"]);
  136.      $id = $val["id"];
  137.      if($i==$date)
  138.       {
  139.        $cssClass = "date";
  140.        $htmltext = "<td align=\"right\" class=\"$cssClass\"><a href=nouv.php?ref=$id\" class=\"lien\" title=\"date &eacute;v&eacute;nement\">$i</a></td>";
  141.       }
  142.     }
  143.     echo $htmltext;
  144.          }
  145.   /******************************/
  146.         echo "</tr>";
  147.         echo "</table></div>";
  148. ?>


 
 
 
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. ?>

mood
Publicité
Posté le 10-05-2009 à 21:06:21  profilanswer
 

n°1882789
stealth35
Posté le 11-05-2009 à 00:48:17  profilanswer
 

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
 
 
 


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

  AMELIORATION D'un calendrier de recherche sur base sql

 

Sujets relatifs
[Hibernate] erreur accès à la base (après un jour)problème de recherche
Recherche V en VBRecherche de mot
[SQL] Etablir un MCD des relations d'une base relationnelle[HELP]code recherche d'une page en html
Recherche script Pendule avec aiguille de qualitéRecherche script Pendule avec aiguille de qualité
Affichage de texte provenant d'une base de donnée avec un timer....Utilisation de XML comme base de donnnée
Plus de sujets relatifs à : AMELIORATION D'un calendrier de recherche sur base sql


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