SUJET POUR QUELQU' UN QUI CONNAIT LE PHP AVEC BASE SQL

cs_philou4212 Messages postés 1 Date d'inscription vendredi 14 octobre 2005 Statut Membre Dernière intervention 9 mai 2009 - 9 mai 2009 à 17:59
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 - 11 mai 2009 à 11:37
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

<?php
 include ("connexion.php");
 function mysql_date($champ)
 {
  $annee=substr($champ,0,4);
  $mois=substr($champ,5,2);
  $jour=substr($champ,8,2);
  return $jour;
 }
 function premier_jour_du_mois($mois,$annee)
 {
   $intPremierJour = date("w",mktime(0,0,0,$mois,1,$annee));   if($intPremierJour 0) $intPremierJour 7; // si c'est un dimanche
   return $intPremierJour-1;
 }
 function nbjour($m,$a)
 {
   if(($a%4)==0)
   {
   $fev=29;
   }
  else
   {
  $fev=28;
   }
 $mois = array(0,31,$fev,31,30,31,30,31,31,30,31,30,31);
 for($x=1;$x<13;$x++)
 {
  if($m == $x)
  {
   return $mois[$x];
  }
 }
 }
 
 function lister_table()
 {
  $table="nouv";
  $date = array();
  $query = "SELECT * FROM table";
  $result = mysql_query($query);
  while ($val = mysql_fetch_array($result))
  {
   $date =mysql_date($val["date"]);
   echo $date;
 
  }
 }
 
    function afficheMois($mois, $annee)
    {
  $tab = getdate();
  $jourc = $tab["mday"];
  $anneec = $tab["year"];
  $moisc = $tab["mon"];
        $labelMois = array(" ","Janvier", "F&eacute;vrier", "Mars", "Avril",
                    "Mai", "Juin", "Juillet", "Ao&ucirc;t", "Septembre",
                    "Octobre", "Novembre", "D&eacute;cembre");
        $labelJour = array("Lu.","Ma.","Me.","Je.","Ve.","Sa.","Di.");



  $nbJours=nbjour($mois,$annee);
  $css = "text"; 



        echo "

          \n\";
  
  $mp=$mois+1;
  $mm=$mois-1;
  $ap=$annee+1;
  $am=$annee-1;
  $acp=$annee;
  $acm=$annee;
  
  if($mp==13)
   {
    $mp=1;
    $acp=$acp+1;
    if($acp==2038)
    {
     $acp=1980;
    }
   }
  if($mm==0)
   {
    $mm=12;
    $acm=$acm-1;
    if($acm<1980)
    {
     $acm=2037;
    }
   }
   
  if($ap>2037){$ap=1980;}
  if($am<1980){$am=2037;}
  

  echo \"
  ----
\".
  //modifier les liens ci-dessous avec votre chemin
  \"

".
  " $labelMois[$mois]

, \";
        echo \"

".
  "$annee

http://www.essais.net/nouv.php?mois=$mois&annee=$ap\

"> , \";

  
  
        echo \"----
\";
        for ($i = 0; $i < 7; $i++) {
            echo \"$labelJour[$i], \";
        }
        echo \"\n\";
       
        echo \"----
\";
        for ($i = 0; $i < premier_jour_du_mois($mois,$annee); $i++)
  {
            echo \", \";
        }
      /********************************/
         for ($i = 1; $i <= $nbJours; $i++)
   {
             if (($i-1 + premier_jour_du_mois($mois,$annee)) % 7 == 0)
    {
                 echo \"\n----
\";// Retour &agrave; la ligne chaque Lundi
             }
    if(($i-1==$jourc-1)&&($annee==$anneec)&&($mois==$moisc))
    {
     $cssClass = \"datejour\";
     $htmltext = \"$i, \";
    }
             else
    {
     $cssClass = \"date\";
     $htmltext = \"$i, \";
    }
    /*****************/
    $debut_mois = date(\"Y-m-d\", mktime(0,0,0,$mois,1,$annee));
    $fin_mois = date(\"Y-m-d\", mktime(0,0,0,$mois,$nbJours,$annee));
  
    $query = \"SELECT * FROM nouv where date >='$debut_mois' and date <='$fin_mois' ORDER BY date\";
    $result = mysql_query($query);
    while ($val = mysql_fetch_array($result))
    {
     $date = mysql_date($val[\"date\"]);
     $id = $val[\"id\"];
     if($i==$date)
      {
       $cssClass = \"date\";
       $htmltext = \"$i, \";
      }
    } 
    echo $htmltext;
         }
  /******************************/
        echo \"\";
        echo "

";
 }  
?>



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





<?php
 include ("connexion.php");
$d=getDate();
$m = $_GET["mois"];
$a = $_GET["annee"];
if((!isSet($m)) ||(!isSet($a)))
 {
  AfficheMois($d["mon"],$d["year"]);
 }
 else
 {
  AfficheMois($m,$a);
 }





function mysql_date_fr($champ)
{
$annee=substr($champ,0,4);
$mois=substr($champ,5,2);
$jour=substr($champ,8,2);
return $jour."-".$mois."-".$annee;
}
$ref_event = $_GET["ref"];
$query = "SELECT * FROM nouv where id="$ref_event" ";
$result = mysql_query($query);
while ($val = mysql_fetch_array($result))
{
$id = $val["id"];
$date = mysql_date_fr($val["date"]);



$journee = mysql_date_fr($val["journee"]);
$jour = $val["jour"];
$mois = $val["mois"];

echo " ".$journee." ".$jour." ";
echo " ".$mois." ";

}
mysql_close();
?>

1 réponse

nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
11 mai 2009 à 11:37
Puisqu'en cliquant sur un mois, on obtient 2 paramètres: année et mois, la requête la plus simple serait par exempple:

public function getEventsFor( $year, $month, $day = 1 )
{
    $dt="$year$month" . str_pad( $day, 2, '0' ) ;
    $query = "SELECT * FROM table WHERE eventDate=$dt" ;
etc...
0
Rejoignez-nous