Prise en charge date complete script de réservation

Prise en charge date complete script de réservation - PHP - Programmation

Marsh Posté le 08-06-2010 à 13:08:58    

Bonjour,
 
Je suis actuellement en stage et je dois modifier un script d'affichage des réservations d'un piste de karting.Tout marche a peu près bien a part que lors de l'affichage le script ne prend en compte que l'heure et le numéro du jour de la réservation, ne prenant pas en compte ni le mois ni l'année.Voici donc ce que cela me fait pour une reservation pour le 14/06/2010 a 14h par exemple :
http://loisirs.mecaniques.online.f [...] e-la-piste
 
voila le script en entier:

Code :
  1. <?php
  2. include('traitements.php'); //L'instruction de langage include() inclut et exécute le fichier spécifié en argument, en l'occurence ici la page traitements.php
  3. css();
  4. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  5. //Affichage du jour de la date correspondante
  6. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  7. echo '<div align="center">';
  8. echo "Date du jour : ";
  9. $today = date("N" );  // d ate("N" ) retourne un numéro de 1 à 7 pour Lundi à Dimanche
  10. switch($today) //Le Switch permet d'avoir une écriture simplifiée, nettement plus lisibile qu'une pile de if then else.  
  11. {
  12. case 1:
  13.  echo "Lundi ";
  14.  break;
  15. case 2:
  16.  echo "Mardi ";
  17.  break;
  18. case 3:
  19.  echo "Mercredi ";
  20.  break;
  21. case 4:
  22.  echo "Jeudi ";
  23.  break;
  24. case 5:
  25.  echo "Vendredi ";
  26.  break;
  27. case 6:
  28.  echo "Samedi ";
  29.  break;
  30. case 7:
  31.  echo "Dimanche ";
  32.  break;
  33. }
  34. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  35. // Affichage de la date
  36. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  37. echo $aujourdhui = date("d/m/Y" ); // date() est la fonction date qui permet de récupérer la date du jour : d est le numéro du jour dans le mois, m est le numéro du mois dans l'année, et y est l'année.
  38. echo "<br>";
  39. echo "<br>";
  40. echo '</div>';
  41. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  42. // Début  
  43. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  44. // $tab1 sera un tableau dont les indices (0 à 23 ici) représenterons l'état.
  45. //$tab1 = array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); //Warning: Cannot use a scalar value as an array in C:\wamp\www\Calendrier\calendrieroriginal.php  on line 67
  46. //La fonction array() permet de créer des tableaux dynamiques qui seront exploités par les scripts PHP à la différence d'une table mySQL, l'array est temporaire et ne reste généré que le temps du déroulement du script.
  47. $tab1 = array();
  48. // Lecture première requête et mise à jour ...
  49. $sql= "SELECT jo6_etat.img, jo6_horaires.heure, jo6_horaires.id_etat_horaire, jo6_horaires.jour
  50. FROM jo6_horaires LEFT JOIN jo6_etat
  51. ON jo6_horaires.id_etat_horaire=jo6_etat.id_etat
  52. ORDER BY jo6_horaires.heure ASC";
  53. $req = mysql_query($sql) or die(mysql_error());
  54. while ($val = mysql_fetch_assoc($req)) //mysql_fetch_assoc — Lit une ligne de résultat MySQL dans un tableau associatif
  55. {
  56.  $tab1[$val['jour']][$val['heure']] = $val['img'];
  57. }
  58. // En sortie de cette requête nous avons la mise à jour des états pour chaque indice de 0 à 23
  59. //il faut récupérer le numéro du jour, heure et etat.img pour tous les évènements dont la date est comprise entre le moment présent et le moment présent + 6 jours.
  60. //il faut donc d'abord récupérer la date présente et la date finale.
  61. //$j=60;
  62. //$today=date('Y-m-d');
  63. //$lastday=date(strtotime('+' . $j . ' day')); //strtotime — Transforme un texte anglais en timestamp
  64. //strtotime() essaye de lire une date au format anglais US dans la chaîne time , et de la transformer en timestamp Unix (le nombre de secondes depuis le 1er Janvier 1970 à 00:00:00 UTC),
  65. //relativement au timestamp now , ou à la date courante si ce dernier est omis.  
  66. // Lecture deuxième requête est mise à jour si il y a des valeurs différentes
  67. $sql="SELECT jo6_evenements.heure, jo6_evenements.date_evenement, jo6_etat.img
  68. FROM jo6_evenements LEFT JOIN jo6_etat
  69. ON jo6_evenements.id_etat_evenement=jo6_etat.id_etat
  70. WHERE jo6_evenements.date_evenement >= Now()
  71. and TO_DAYS(jo6_evenements.date_evenement) <= TO_DAYS(Now())+60;";
  72. $req = mysql_query($sql) or die(mysql_error());
  73. while ($val = mysql_fetch_assoc($req))
  74. {
  75.  // A remplacer par j
  76.  $jour=date('j', strtotime($val['date_evenement']));
  77.  $tab2[$jour][$val['heure']] = $val['img'];
  78. }
  79.  //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  80. //affichage légende
  81. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  82. echo '<div align="center">';
  83. echo '<br>';
  84. echo '<table border="0" cellspacing="0"><tr>'; //début tableau
  85. echo '<td><center><img src="IMG/rouge.png"></center></td><td>Fermée</td>';
  86. echo '<td><center><img src="IMG/vert.png"></center></td><td>Libre</td>';
  87. echo '<td><center><img src="IMG/jaune.png"></center></td><td>Sur réservation</td>';
  88. echo '<td><center><img src="IMG/bleu.png"></center></td><td>Réservée</td>';
  89. echo '</table>'; //fin tableau
  90. echo '</div>';
  91. echo '<br>';
  92. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  93. // Affichage du tableau final
  94. //-----------------------------------------------------------------------SEMAINE 1 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  95. echo '<table  cellspacing="0" background="IMG/ft.png" >';
  96. echo '<tr>';
  97. echo '<td colspan="19"><IMG src="IMG/heure.png"></td>';
  98. //for ($i = 7; $i <= 23; $i++)
  99. //{
  100. // echo '<td>'.$i.'H</td>';
  101. //}
  102.    
  103. echo '</tr>';
  104.  // fonction qui retourne 7 dates après celle d'aujourd'hui
  105.     for ($j = 0; $j < 7; $j++)
  106.  {
  107.   $jsemaine = date('d/m/Y', strtotime('+' . $j . ' day'));
  108.   $jsemaine_chiffre = date('N', strtotime('+' . $j . ' day'));
  109.   $jjour_chiffre = date('j', strtotime('+' . $j . ' day'));
  110.  echo '<tr>';
  111.   echo '<td>';
  112.   $f = 0;
  113.   $s = 0;
  114.   if ($j > 0 )
  115.   $s = 1;
  116.   if ($today == 7)
  117.   $f = $j ;
  118.   //$today = date("N" );  // date("N" ) retourne un numéro de 1 à 7 pour Lundi à Dimanche
  119.   $today = $today + $s - $f ;
  120. echo '<div align="center"> ';
  121.  
  122. switch($today)  //Le Switch permet d'avoir une écriture simplifiée, nettement plus lisibile qu'une pile de if then else.  
  123. {
  124. case 1:
  125.  echo 'Lundi<br>'.$jsemaine;
  126.  break;
  127. case 2:
  128.  echo ' Mardi<br> '.$jsemaine;
  129.  break;
  130. case 3:
  131.  echo 'Mercredi<br> '.$jsemaine;
  132.  break;
  133. case 4:
  134.  echo 'Jeudi<br> '.$jsemaine;
  135.  break;
  136. case 5:
  137.  echo 'Vendredi<br> '.$jsemaine;
  138.  break;
  139. case 6:
  140.  echo 'Samedi<br> '.$jsemaine;
  141.  break;
  142. case 7:
  143.  echo 'Dimanche<br> '.$jsemaine;
  144.  break;
  145. }
  146. echo '</div>';
  147. if ($today == 7)
  148.   $today = 0 ;
  149.   echo '</td>';
  150.   for ($i = 7; $i <= 23; $i++)
  151.   {
  152.    if (!isset($tab2[$jjour_chiffre][$i]))
  153.    echo '<td><center><img src='.'IMG/'.$tab1[$jsemaine_chiffre][$i].'></center></td>';
  154.    else
  155.    echo '<td><center><img src='.'IMG/'.$tab2[$jjour_chiffre][$i].'></center></td>';
  156.   }
  157.  }
  158.  echo '</tr>';
  159. echo '</table>';
  160. //---------------------------------------------------------SEMAINE 2 --------------------------------------------------------------------
  161. echo '<table  border="0" cellspacing="0" background="IMG/ft.png">';
  162. echo '<tr>';
  163. echo '<td colspan="19"><img src="IMG/heure.png"></td>';
  164. //for ($i = 7; $i <= 23; $i++)
  165. //{
  166. // echo '<td>'.$i.'H</td>';
  167. //}
  168.    
  169. echo '</tr>';
  170. echo '<br><br>';
  171.  // fonction qui retourne 7 dates après celle d'aujourd'hui
  172.     for ($j = 7; $j < 14; $j++)
  173.  {
  174.   $jsemaine = date('d/m/Y', strtotime('+' . $j . ' day'));
  175.   $jsemaine_chiffre = date('N', strtotime('+' . $j . ' day'));
  176.   $jjour_chiffre = date('j', strtotime('+' . $j . ' day'));
  177.  echo '<tr>';
  178.   echo '<td>';
  179.   $f = 0;
  180.   $s = 0;
  181.   if ($j > 0 )
  182.   $s = 1;
  183.   if ($today == 7)
  184.   $f = $j ;
  185.   //$today = date("N" );  // date("N" ) retourne un numéro de 1 à 7 pour Lundi à Dimanche
  186.   $today = $today + $s - $f ;
  187. echo '<div align="center"> ';
  188. switch($today)  //Le Switch permet d'avoir une écriture simplifiée, nettement plus lisibile qu'une pile de if then else.  
  189. {
  190. case 1:
  191.  echo 'Lundi<br>'.$jsemaine;
  192.  break;
  193. case 2:
  194.  echo ' Mardi<br> '.$jsemaine;
  195.  break;
  196. case 3:
  197.  echo 'Mercredi<br> '.$jsemaine;
  198.  break;
  199. case 4:
  200.  echo 'Jeudi<br> '.$jsemaine;
  201.  break;
  202. case 5:
  203.  echo 'Vendredi<br> '.$jsemaine;
  204.  break;
  205. case 6:
  206.  echo 'Samedi<br> '.$jsemaine;
  207.  break;
  208. case 7:
  209.  echo 'Dimanche<br> '.$jsemaine;
  210.  break;
  211. }
  212. echo '</div> ';
  213. if ($today == 7)
  214.   $today = 0 ;
  215.   echo'</td>';
  216.   for ($i = 7; $i <= 23; $i++)
  217.   {
  218.    if (!isset($tab2[$jjour_chiffre][$i]))
  219.    echo '<td><center><img src='.'IMG/'.$tab1[$jsemaine_chiffre][$i].'></center></td>';
  220.    else
  221.    echo '<td><center><img src='.'IMG/'.$tab2[$jjour_chiffre][$i].'></center></td>';
  222.   }
  223.  }
  224.  echo '</tr>';
  225. echo '</table>';
  226. //-----------------------------------------------------------------------SEMAINE 3 -------------------------------------------------------------------------------------
  227. echo '<table  border="0" cellspacing="0" background="IMG/ft.png">';
  228. echo '<tr>';
  229. echo '<td colspan="19"><img src="IMG/heure.png"></td>';
  230. //for ($i = 7; $i <= 23; $i++)
  231. //{
  232. // echo '<td>'.$i.'H</td>';
  233. //}
  234.    
  235. echo '</tr>';
  236. echo '<br><br>';
  237.  // fonction qui retourne 7 dates après celle d'aujourd'hui
  238.     for ($j = 14; $j < 21; $j++)
  239.  {
  240.   $jsemaine = date('d/m/Y', strtotime('+' . $j . ' day'));
  241.   $jsemaine_chiffre = date('N', strtotime('+' . $j . ' day'));
  242.   $jjour_chiffre = date('j', strtotime('+' . $j . ' day'));
  243.  echo '<tr>';
  244.   echo '<td>';
  245.   $f = 0;
  246.   $s = 0;
  247.   if ($j > 0 )
  248.   $s = 1;
  249.   if ($today == 7)
  250.   $f = $j ;
  251.   //$today = date("N" );  // date("N" ) retourne un numéro de 1 à 7 pour Lundi à Dimanche
  252.   $today = $today + $s - $f ;
  253. echo '<div align="center"> ';
  254. switch($today)  //Le Switch permet d'avoir une écriture simplifiée, nettement plus lisibile qu'une pile de if then else.  
  255. {
  256. case 1:
  257.  echo 'Lundi<br>'.$jsemaine;
  258.  break;
  259. case 2:
  260.  echo ' Mardi<br> '.$jsemaine;
  261.  break;
  262. case 3:
  263.  echo 'Mercredi<br> '.$jsemaine;
  264.  break;
  265. case 4:
  266.  echo 'Jeudi<br> '.$jsemaine;
  267.  break;
  268. case 5:
  269.  echo 'Vendredi<br> '.$jsemaine;
  270.  break;
  271. case 6:
  272.  echo 'Samedi<br> '.$jsemaine;
  273.  break;
  274. case 7:
  275.  echo 'Dimanche<br> '.$jsemaine;
  276.  break;
  277. }
  278. echo '</div> ';
  279. if ($today == 7)
  280.   $today = 0 ;
  281.   echo'</td>';
  282.   for ($i = 7; $i <= 23; $i++)
  283.   {
  284.    if (!isset($tab2[$jjour_chiffre][$i]))
  285.    echo '<td><center><img src='.'IMG/'.$tab1[$jsemaine_chiffre][$i].'></center></td>';
  286.    else
  287.    echo '<td><center><img src='.'IMG/'.$tab2[$jjour_chiffre][$i].'></center></td>';
  288.   }
  289.  }
  290.  echo '</tr>';
  291. echo '</table>';
  292. //---------------------------------------------------------SEMAINE 4 --------------------------------------------------------------------
  293. echo '<table  border="0" cellspacing="0" background="IMG/ft.png">';
  294. echo '<tr>';
  295. echo '<td colspan="19"><img src="IMG/heure.png"></td>';
  296. //for ($i = 7; $i <= 23; $i++)
  297. //{
  298. // echo '<td>'.$i.'H</td>';
  299. //}
  300.    
  301. echo '</tr>';
  302. echo '<br><br>';
  303.  // fonction qui retourne 7 dates après celle d'aujourd'hui
  304.     for ($j = 21; $j < 28; $j++)
  305.  {
  306.   $jsemaine = date('d/m/Y', strtotime('+' . $j . ' day'));
  307.   $jsemaine_chiffre = date('N', strtotime('+' . $j . ' day'));
  308.   $jjour_chiffre = date('j', strtotime('+' . $j . ' day'));
  309.  echo '<tr>';
  310.   echo '<td>';
  311.   $f = 0;
  312.   $s = 0;
  313.   if ($j > 0 )
  314.   $s = 1;
  315.   if ($today == 7)
  316.   $f = $j ;
  317.   //$today = date("N" );  // date("N" ) retourne un numéro de 1 à 7 pour Lundi à Dimanche
  318.   $today = $today + $s - $f ;
  319. echo '<div align="center"> ';
  320. switch($today)  //Le Switch permet d'avoir une écriture simplifiée, nettement plus lisibile qu'une pile de if then else.  
  321. {
  322. case 1:
  323.  echo 'Lundi<br>'.$jsemaine;
  324.  break;
  325. case 2:
  326.  echo ' Mardi<br> '.$jsemaine;
  327.  break;
  328. case 3:
  329.  echo 'Mercredi<br> '.$jsemaine;
  330.  break;
  331. case 4:
  332.  echo 'Jeudi<br> '.$jsemaine;
  333.  break;
  334. case 5:
  335.  echo 'Vendredi<br> '.$jsemaine;
  336.  break;
  337. case 6:
  338.  echo 'Samedi<br> '.$jsemaine;
  339.  break;
  340. case 7:
  341.  echo 'Dimanche<br> '.$jsemaine;
  342.  break;
  343. }
  344. echo '</div> ';
  345. if ($today == 7)
  346.   $today = 0 ;
  347.   echo'</td>';
  348.   for ($i = 7; $i <= 23; $i++)
  349.   {
  350.    if (!isset($tab2[$jjour_chiffre][$i]))
  351.    echo '<td><center><img src='.'IMG/'.$tab1[$jsemaine_chiffre][$i].'></center></td>';
  352.    else
  353.    echo '<td><center><img src='.'IMG/'.$tab2[$jjour_chiffre][$i].'></center></td>';
  354.   }
  355.  }
  356.  echo '</tr>';
  357. echo '</table>';
  358. //---------------------------------------------------------------------------------------------------------------------------------------------
  359. //-----------------------------------------------------------------------SEMAINE 1 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  360. echo '<table  border="0" cellspacing="0" background="IMG/ft.png" >';
  361. echo '<tr>';
  362. echo '<td colspan="19"><IMG src="IMG/heure.png"></td>';
  363. //for ($i = 7; $i <= 23; $i++)
  364. //{
  365. // echo '<td>'.$i.'H</td>';
  366. //}
  367.    
  368. echo '</tr>';
  369. echo '<br><br>';
  370.  // fonction qui retourne 7 dates après celle d'aujourd'hui
  371.     for ($j = 28; $j < 35; $j++)
  372.  {
  373.   $jsemaine = date('d/m/Y', strtotime('+' . $j . ' day'));
  374.   $jsemaine_chiffre = date('N', strtotime('+' . $j . ' day'));
  375.   $jjour_chiffre = date('j', strtotime('+' . $j . ' day'));
  376.  echo '<tr>';
  377.   echo '<td>';
  378.   $f = 0;
  379.   $s = 0;
  380.   if ($j > 0 )
  381.   $s = 1;
  382.   if ($today == 7)
  383.   $f = $j ;
  384.   //$today = date("N" );  // date("N" ) retourne un numéro de 1 à 7 pour Lundi à Dimanche
  385.   $today = $today + $s - $f ;
  386. echo '<div align="center"> ';
  387.    
  388. switch($today)  //Le Switch permet d'avoir une écriture simplifiée, nettement plus lisibile qu'une pile de if then else.  
  389. {
  390. case 1:
  391.  echo 'Lundi<br>'.$jsemaine;
  392.  break;
  393. case 2:
  394.  echo ' Mardi<br> '.$jsemaine;
  395.  break;
  396. case 3:
  397.  echo 'Mercredi<br> '.$jsemaine;
  398.  break;
  399. case 4:
  400.  echo 'Jeudi<br> '.$jsemaine;
  401.  break;
  402. case 5:
  403.  echo 'Vendredi<br> '.$jsemaine;
  404.  break;
  405. case 6:
  406.  echo 'Samedi<br> '.$jsemaine;
  407.  break;
  408. case 7:
  409.  echo 'Dimanche<br> '.$jsemaine;
  410.  break;
  411. }
  412. echo '</div>';
  413. if ($today == 7)
  414.   $today = 0 ;
  415.   echo '</td>';
  416.   for ($i = 7; $i <= 23; $i++)
  417.   {
  418.    if (!isset($tab2[$jjour_chiffre][$i]))
  419.    echo '<td><center><img src='.'IMG/'.$tab1[$jsemaine_chiffre][$i].'></center></td>';
  420.    else
  421.    echo '<td><center><img src='.'IMG/'.$tab2[$jjour_chiffre][$i].'></center></td>';
  422.   }
  423.  }
  424.  echo '</tr>';
  425. echo '</table>';
  426. //---------------------------------------------------------SEMAINE 2 --------------------------------------------------------------------
  427. echo '<table  border="0" cellspacing="0" background="IMG/ft.png">';
  428. echo '<tr>';
  429. echo '<td colspan="19"><img src="IMG/heure.png"></td>';
  430. //for ($i = 7; $i <= 23; $i++)
  431. //{
  432. // echo '<td>'.$i.'H</td>';
  433. //}
  434.    
  435. echo '</tr>';
  436. echo '<br><br>';
  437.  // fonction qui retourne 7 dates après celle d'aujourd'hui
  438.     for ($j = 35; $j < 42; $j++)
  439.  {
  440.   $jsemaine = date('d/m/Y', strtotime('+' . $j . ' day'));
  441.   $jsemaine_chiffre = date('N', strtotime('+' . $j . ' day'));
  442.   $jjour_chiffre = date('j', strtotime('+' . $j . ' day'));
  443.  echo '<tr>';
  444.   echo '<td>';
  445.   $f = 0;
  446.   $s = 0;
  447.   if ($j > 0 )
  448.   $s = 1;
  449.   if ($today == 7)
  450.   $f = $j ;
  451.   //$today = date("N" );  // date("N" ) retourne un numéro de 1 à 7 pour Lundi à Dimanche
  452.   $today = $today + $s - $f ;
  453. echo '<div align="center"> ';
  454. switch($today)  //Le Switch permet d'avoir une écriture simplifiée, nettement plus lisibile qu'une pile de if then else.  
  455. {
  456. case 1:
  457.  echo 'Lundi<br>'.$jsemaine;
  458.  break;
  459. case 2:
  460.  echo ' Mardi<br> '.$jsemaine;
  461.  break;
  462. case 3:
  463.  echo 'Mercredi<br> '.$jsemaine;
  464.  break;
  465. case 4:
  466.  echo 'Jeudi<br> '.$jsemaine;
  467.  break;
  468. case 5:
  469.  echo 'Vendredi<br> '.$jsemaine;
  470.  break;
  471. case 6:
  472.  echo 'Samedi<br> '.$jsemaine;
  473.  break;
  474. case 7:
  475.  echo 'Dimanche<br> '.$jsemaine;
  476.  break;
  477. }
  478. echo '</div> ';
  479. if ($today == 7)
  480.   $today = 0 ;
  481.   echo'</td>';
  482.   for ($i = 7; $i <= 23; $i++)
  483.   {
  484.    if (!isset($tab2[$jjour_chiffre][$i]))
  485.    echo '<td><center><img src='.'IMG/'.$tab1[$jsemaine_chiffre][$i].'></center></td>';
  486.    else
  487.    echo '<td><center><img src='.'IMG/'.$tab2[$jjour_chiffre][$i].'></center></td>';
  488.   }
  489.  }
  490.  echo '</tr>';
  491. echo '</table>';
  492. //-----------------------------------------------------------------------SEMAINE 3 -------------------------------------------------------------------------------------
  493. echo '<table  border="0" cellspacing="0" background="IMG/ft.png">';
  494. echo '<tr>';
  495. echo '<td colspan="19"><img src="IMG/heure.png"></td>';
  496. //for ($i = 7; $i <= 23; $i++)
  497. //{
  498. // echo '<td>'.$i.'H</td>';
  499. //}
  500.    
  501. echo '</tr>';
  502. echo '<br><br>';
  503.  // fonction qui retourne 7 dates après celle d'aujourd'hui
  504.     for ($j = 42; $j < 49; $j++)
  505.  {
  506.   $jsemaine = date('d/m/Y', strtotime('+' . $j . ' day'));
  507.   $jsemaine_chiffre = date('N', strtotime('+' . $j . ' day'));
  508.   $jjour_chiffre = date('j', strtotime('+' . $j . ' day'));
  509.  echo '<tr>';
  510.   echo '<td>';
  511.   $f = 0;
  512.   $s = 0;
  513.   if ($j > 0 )
  514.   $s = 1;
  515.   if ($today == 7)
  516.   $f = $j ;
  517.   //$today = date("N" );  // date("N" ) retourne un numéro de 1 à 7 pour Lundi à Dimanche
  518.   $today = $today + $s - $f ;
  519. echo '<div align="center"> ';
  520. switch($today)  //Le Switch permet d'avoir une écriture simplifiée, nettement plus lisibile qu'une pile de if then else.  
  521. {
  522. case 1:
  523.  echo 'Lundi<br>'.$jsemaine;
  524.  break;
  525. case 2:
  526.  echo ' Mardi<br> '.$jsemaine;
  527.  break;
  528. case 3:
  529.  echo 'Mercredi<br> '.$jsemaine;
  530.  break;
  531. case 4:
  532.  echo 'Jeudi<br> '.$jsemaine;
  533.  break;
  534. case 5:
  535.  echo 'Vendredi<br> '.$jsemaine;
  536.  break;
  537. case 6:
  538.  echo 'Samedi<br> '.$jsemaine;
  539.  break;
  540. case 7:
  541.  echo 'Dimanche<br> '.$jsemaine;
  542.  break;
  543. }
  544. echo '</div> ';
  545. if ($today == 7)
  546.   $today = 0 ;
  547.   echo'</td>';
  548.   for ($i = 7; $i <= 23; $i++)
  549.   {
  550.    if (!isset($tab2[$jjour_chiffre][$i]))
  551.    echo '<td><center><img src='.'IMG/'.$tab1[$jsemaine_chiffre][$i].'></center></td>';
  552.    else
  553.    echo '<td><center><img src='.'IMG/'.$tab2[$jjour_chiffre][$i].'></center></td>';
  554.   }
  555.  }
  556.  echo '</tr>';
  557. echo '</table>';
  558. //---------------------------------------------------------SEMAINE 4 --------------------------------------------------------------------
  559. echo '<table  border="0" cellspacing="0" background="IMG/ft.png">';
  560. echo '<tr>';
  561. echo '<td colspan="19"><img src="IMG/heure.png"></td>';
  562. //for ($i = 7; $i <= 23; $i++)
  563. //{
  564. // echo '<td>'.$i.'H</td>';
  565. //}
  566.    
  567. echo '</tr>';
  568. echo '<br><br>';
  569.  // fonction qui retourne 7 dates après celle d'aujourd'hui
  570.     for ($j = 49; $j < 56; $j++)
  571.  {
  572.   $jsemaine = date('d/m/Y', strtotime('+' . $j . ' day'));
  573.   $jsemaine_chiffre = date('N', strtotime('+' . $j . ' day'));
  574.   $jjour_chiffre = date('j', strtotime('+' . $j . ' day'));
  575.  echo '<tr>';
  576.   echo '<td>';
  577.   $f = 0;
  578.   $s = 0;
  579.   if ($j > 0 )
  580.   $s = 1;
  581.   if ($today == 7)
  582.   $f = $j ;
  583.   //$today = date("N" );  // date("N" ) retourne un numéro de 1 à 7 pour Lundi à Dimanche
  584.   $today = $today + $s - $f ;
  585. echo '<div align="center"> ';
  586. switch($today)  //Le Switch permet d'avoir une écriture simplifiée, nettement plus lisibile qu'une pile de if then else.  
  587. {
  588. case 1:
  589.  echo 'Lundi<br>'.$jsemaine;
  590.  break;
  591. case 2:
  592.  echo ' Mardi<br> '.$jsemaine;
  593.  break;
  594. case 3:
  595.  echo 'Mercredi<br> '.$jsemaine;
  596.  break;
  597. case 4:
  598.  echo 'Jeudi<br> '.$jsemaine;
  599.  break;
  600. case 5:
  601.  echo 'Vendredi<br> '.$jsemaine;
  602.  break;
  603. case 6:
  604.  echo 'Samedi<br> '.$jsemaine;
  605.  break;
  606. case 7:
  607.  echo 'Dimanche<br> '.$jsemaine;
  608.  break;
  609. }
  610. echo '</div> ';
  611. if ($today == 7)
  612.   $today = 0 ;
  613.   echo'</td>';
  614.   for ($i = 7; $i <= 23; $i++)
  615.   {
  616.    if (!isset($tab2[$jjour_chiffre][$i]))
  617.    echo '<td><center><img src='.'IMG/'.$tab1[$jsemaine_chiffre][$i].'></center></td>';
  618.    else
  619.    echo '<td><center><img src='.'IMG/'.$tab2[$jjour_chiffre][$i].'></center></td>';
  620.   }
  621.  }
  622.  echo '</tr>';
  623. echo '</table>';
  624. //---------------------------------------------------------------------------------------------------------------------------------------------
  625. ?>
  626. </div>


 
Si vous pouviez m'aider a prendre  en compte le mois et l'année je vous en serais très reconnaissant.
 
Merci d'avance

Reply

Marsh Posté le 08-06-2010 à 13:08:58   

Reply

Marsh Posté le 08-06-2010 à 15:22:30    

On ne fait pas ton boulot à ta place.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 08-06-2010 à 21:18:10    

Ce n'est pas ce que je souhaite.J'ai d'ailleurs réussi a repéré d'ouù venais le bug cependant n'étant que novice en php je ne sais pas comment faire pour prendre en compte la date complète et ce n'est pas faute d'avoir essayé.
 
voici les lignes sur lesquelles il faudrait apporté des modifs pour pouvoir inclue le mois et l'année si possible:
 
 
while ($val = mysql_fetch_assoc($req))
{
 // A remplacer par j
 $jour=date('j', strtotime($val['date_evenement']));
 $tab2[$jour][$val['heure']] = $val['img'];
}
 
                                   [..]
 
 
 $jsemaine = date('d/m/Y', strtotime('+' . $j . ' day'));
  $jsemaine_chiffre = date('N', strtotime('+' . $j . ' day'));
  $jjour_chiffre = date('j', strtotime('+' . $j . ' day'));
   
                            [..]
 
 
for ($i = 7; $i <= 23; $i++)
  {
   if (!isset($tab2[$jjour_chiffre][$i]))
   echo '<td><center><img src='.'IMG/'.$tab1[$jsemaine_chiffre][$i].'></center></td>';
   else
   echo '<td><center><img src='.'IMG/'.$tab2[$jjour_chiffre][$i].'></center></td>';
  }
 
 

Reply

Marsh Posté le 09-06-2010 à 10:22:35    

wyllen a écrit :

Ce n'est pas ce que je souhaite.J'ai d'ailleurs réussi a repéré d'ouù venais le bug cependant n'étant que novice en php je ne sais pas comment faire pour prendre en compte la date complète et ce n'est pas faute d'avoir essayé.
 
voici les lignes sur lesquelles il faudrait apporté des modifs pour pouvoir inclue le mois et l'année si possible:
[...]


Salut,
 
Pose une question précise si tu veux qu'on puisse t'aider. Du genre, j'essaie de faire ça, j'ai testé ci, j'ai testé ça, j'ai tel message d'erreur... Car sinon ça veut dire qu'on te file du code tout cuit que t'as juste à copier coller et ça ne te permettra pas de comprendre.
 
Tu dis être novice en PHP, je te recommande donc l'utilisation de la doc en ligne pour répondre à 100% des questions que tu pourrais te poser.
Par exemple tu parles de problème de date, le mieux est de se renseigner sur la fonction date dans la doc : http://php.net/date
 
Fais des essais, fais des erreurs, récupère les messages d'erreurs, pose des questions précises et là tu recevras plus facilement de l'aide.
 
Bon courage

Reply

Marsh Posté le 09-06-2010 à 10:26:39    

Un conseil, pour afficher le nom du jour en fr, plutôt qu'un gros switch bien pourri, fais un tableau :

Code :
  1. $Jours = array("Lundi", "Mardi"....., "Dimanche" );
  2. $today = date("N" );
  3. $JoursAAfficher = $Jours[$today - 1];


 
Ton pb de réservation revient à une disponibilité d'une ressource. Tu peux regarder le code source de mon soft Astres (cf signature), la partie Planning (les fichiers qui contiennent le mot "Planning" dans leur nom). Moi, c'était pour voir la dispo de personnes d'une équipe sur une période donnée (jour, mois, plage de date).

Message cité 1 fois
Message édité par rufo le 09-06-2010 à 10:29:33

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 09-06-2010 à 10:47:13    

rufo a écrit :

Un conseil, pour afficher le nom du jour en fr, plutôt qu'un gros switch bien pourri, fais un tableau :

Code :
  1. $Jours = array("Lundi", "Mardi"....., "Dimanche" );
  2. $today = date("N" );
  3. $JoursAAfficher = $Jours[$today - 1];




 
pourquoi s'embêter : strftime   ;)

Reply

Marsh Posté le 09-06-2010 à 11:39:01    

aussi :D


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 09-06-2010 à 18:50:12    

Merci pour vos réponses je vais voir ce que je peux faire :)

Reply

Sujets relatifs:

Leave a Replay

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