Se connecter / S'enregistrer
Votre question

Formulaire case a cocher

Tags :
  • Programmation
Dernière réponse : dans Programmation
Anonyme
14 Janvier 2010 15:01:54

Bonjour a tous

Un souci de mise en forme avec un formulaire
J’ai un calendrier de 7 jours du lundi au dimanche me permettant d’afficher les heures d’ouverture ou de fermeture de plusieurs agences « agence par agence »

1/ La base de données :


Pour chaque agence un id_agence liaison avec une autre table: agence
Les champs heures 00_00, 00_30… 23_30 sont de type enum White ou green, qui me servent pour affecter un background white ou green dans le tableau du dessus.

2 / L’affichage du tableau
Chaque jour représente une ligne du tableau
Chaque colonne représente ½ heure en partant de 00h00 jusqu'à 23h59 donc 48 colonnes + 1 colonne au début de chaque ligne pour afficher le jour, comme ceci :




Requête permettant d’afficher le tableau
  1. $rec = mysql_query("SELECT a.*, b.id_agence FROM agences_heure a, agences b WHERE a.id_agence = $id_agence and a.id_agence=b.id_agence") or die (debug_mysql()); // debug_mysql fonction permetant d'ecrire dans un fichier de log les erreurs de reqettage
  2. $i = 0; // declaration de la variable $i a null
  3. while($data = mysql_fetch_array($rec)) //pour chaque résultat trouvé retourner une ligne "Normalement il y a 7 ligne car 7 jours"
  4. {
  5. echo ' <TR bgcolor="#'.$color.'"><TD align=right style="border-right: 1pt dotted black;" class="horaire"> '.$data['jour'].'</TD>'."\n";
  6. for ($z=3; $z<51; $z++) { // Afin de ne selectionner dans la base les horraires de 00_00 à 23_30 automatiquement sachant que 00_00 est la 4 colone dans la db donc on commence a 3.
  7. echo '<td style="border-bottom: 1pt dotted black;"><table cellspacing=0 cellpadding=0 border=0 width=10 height=11><tr><td bgcolor='.$data[$z].'><font style="font-size: 1pt;"> </font></td></tr></table></td>'."\n";
  8. }
  9. echo '</TR>'."\n";
  10. $i++;
  11. }

3/ L’édition Modification
L’édition se fait grâce a des cases a cocher représentant chacune ½heure




Requête permettant d’afficher le tableau avec les cases à cocher
  1. echo '<FORM id="heures" method="POST" enctype="multipart/form-data" action="'.$_SERVER['PHP_SELF'].'?id_agence='.$id_agence.'" name="enreg" enctype="multipart/form-data">'."\n";
  2. echo '<TABLE>'."\n";
  3. $result = mysql_query("SELECT * FROM agences_heure where id_agence= '$id_agence' LIMIT 7") or die (debug_mysql()); // on limite la recherche a 7 car 7 jour "pas propre mais bon"
  4. $i = 0;
  5. while($data = mysql_fetch_array($result))
  6. {
  7. if ($i % 2 == 0) { // alterner les couleurs de chaque ligne
  8. $color='E5E5E5';
  9. } else {
  10. $color='FEFEFE';
  11. }
  12. echo '<TR bgcolor="#'.$color.'"><TD align="center" class="horaireentete">'.$data['jour'].'</TD>'."\n";
  13. for ($z=3; $z<51; $z++) {
  14. echo '<TD align="center" style="border-left: 1pt solid black; border-right: 0pt;"><input class="'.$color.'" type="checkbox" name="heure['.$data['0'].'-'.$data['2'].'-'.$z.'-'.$data[$z].']" value="'.$data[$z].'" '; // name="heure['.$data['0'].'-'.$data['2'].'-'.$z.'-'.$data[$z].']" : concatener afin d'avoir ex heure[1-Lun-3-white] donc id_heure-id_agence-N°ColonneDB-White
  15. if ($data[$z] == "green") { echo 'checked';} // ajout d'un checked pour afficher la case coché si la valeur corespond a green
  16. echo '</TD>'."\n";
  17. }
  18. echo '</TR>'."\n";
  19. $i++;
  20. }
  21. echo '</TABLE>'."\n";
  22. echo '</FORM>'."\n";


Je souhaite à présent récupérer toute les valeurs afin de mettre à jour la table MySQL
J’utilise pour cela la fonction suivante
  1. if (isset ($HTTP_POST_VARS) ) {
  2. while (list($key,$value) = each($HTTP_POST_VARS))
  3. $$key = stripslashes($value);
  4. }

Question : quelle est la meilleure manière d’arranger le code du formulaire afin de pouvoir mettre à jour la table tout en restant léger.

Autres pages sur : formulaire case cocher

14 Janvier 2010 20:07:16

Hum ... Cas d'étude intéressant. Solution non conventionnelle.

Clairement il y a pas mal de chose à revoir, en commençant par le modèle de la base de donnée.

Déjà pourquoi stocker green ou white ? un simple 1 ou 0 sur un type TINYINT(1) aurait suffit et ta table aurait été beaucoup plus légère. Idem pour le jour mais cela me choque moins. Ensuite tu ne devrait vraiment pas avoir autant de colonne. Tu devrait en avoir 5. Ok tu rajoute beaucoup de ligne. O, sauf que tu n'as besoin de stocker la moitié moins d'info. Pourquoi stocker lorsque tu as un rdv et un lorsque tu n'en as pas ? Pas logique.

Ensuite j'aurais refait le mode édition en javascript. Peut être en laissant les checkbox mais en les cachant en css et en affichant un tableau. Le même tableau que pour l'affichage, sauf que lorsque tu cliques sur un élément, il switch.

Bref, tu as pas bien pris le problème.

Je reviens vers toi avec un exemple rapide dès que je l'ai codé. (d'ici demain je pense).
m
0
l
14 Janvier 2010 21:50:29

Voici le schema que j'aurais fait :

  1. CREATE TABLE rendezvous (
  2. id MEDIUMINT(6) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. annee YEAR NOT NULL,
  4. semaine TINYINT(2) UNSIGNED NOT NULL,
  5. jour TINYINT(1) UNSIGNED NOT NULL,
  6. agence TINYINT(3) UNSIGNED NOT NULL DEFAULT 1,
  7. heure DECIMAL(2,1) UNSIGNED NOT NULL
  8. );
  9.  
  10.  
  11. INSERT INTO rendezvous (annee, semaine, jour, heure) VALUES (2010, 2, 3, 10.5);


Là j'ai un rendez vous de fixé le mercredi de la semaine 2 de l'année 2010 à 10h30, bref, hier quoi ;) .

Le reste de ma journée est libre.

Avantage de cette solution :
- plus légère
- beaucoup moins de donnée à stocker
- plus facile à faire évoluer.

Oui, plus facile à faire évoluer. Je peux très bien imaginer qu'un jour je passe sur des quart d'heure, je n'ai même pas à toucher à la structure de ma base ! faut juste que je duplique les anciennes entrée à la rigueur et c'est tout !

L'ajout suppression de donnée à partir du formulaire arrive, si tu réponds à mes premiers messages. Ca m'évitera de perdre du temps si tu ne reviens plus sur le forum.
m
0
l
Contenus similaires
18 Janvier 2010 08:07:02

Bonjour et merci pour l'info, seul problème c'est que comme indiqué en haut du résumé ce code me sert a afficher des heures d'ouverture et de fermeture de divers agences, donc toute les semaines sont identiques, d'où mon intérêt pour lundi a dimanche.

je n'ai malheureusement pas réussi a intégrer des captures d'écran afin de mieux illustrer mon code si tu as un email, je serais ravis d'échanger avec toi mon avancement.

1/ le fait de metre white ou green dans la db me sert a donner un arriere plan a mes cellules du tableau recapitulatif affichant les horraires.

2/ Le mode edition quand a lui passe en checkbox afin de pour activer 1/2 heure par 1/2 heure chaque jour de semaine ex le lundi ouverture a 9H30 fermeture 12H30 puis ouverture a 13H30 jusqu'a 18H30.
le mardi 10H00 a 13H00 et 14H30 18H30 "ceci n'est qu'un example"

sinon j'avais pensé a une solution en passant par des array
structure de la table
ID_heures
ID_agence
jour
heure
ce qui donnerait

ID_heure 01 ID_agence 02 jour lundi heure 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0

heure : pour chaque demis heure 0 pour fermé 1 pour ouvert
donc la premiere 1/2 fermé .... la 13eme ouvert...
donc agence ouverte a partir de 7H et pandant 4H "8x1" puis ferme 2H ensuite ouverte....

reste a construire le tableau d'affichage, le formulaire d'edition....

de plus il faudrais pouvoir metre a jour les 7 jours de seaminde dans un seul formulaire "c'est la que sa bloque"

Un casse tete , je pense aussi que cela est du a une mauvaise organisation ou probleme de structure, d'ou mon besoin d'aide ou d'echange d'avis.

Merci a toi
m
0
l
22 Janvier 2010 16:58:13

Bonjour a tous, j'ai trouvé une solution compliqué certes mais opérationnelle.
Commençons par la database
  1. CREATE TABLE IF NOT EXISTS `agences_heure` (
  2. `id_heure` int(11) NOT NULL AUTO_INCREMENT,
  3. `id_agence` int(11) NOT NULL,
  4. `jour` enum('Lun','Mar','Mer','Jeu','Ven','Sam','Dim') NOT NULL,
  5. `00_00` enum('green','white') NOT NULL DEFAULT 'white',
  6. `00_30` enum('green','white') NOT NULL DEFAULT 'white',
  7. `01_00` enum('green','white') NOT NULL DEFAULT 'white',
  8. `01_30` enum('green','white') NOT NULL DEFAULT 'white',
  9. `02_00` enum('green','white') NOT NULL DEFAULT 'white',
  10. `02_30` enum('green','white') NOT NULL DEFAULT 'white',
  11. `03_00` enum('green','white') NOT NULL DEFAULT 'white',
  12. `03_30` enum('green','white') NOT NULL DEFAULT 'white',
  13. `04_00` enum('green','white') NOT NULL DEFAULT 'white',
  14. `04_30` enum('green','white') NOT NULL DEFAULT 'white',
  15. `05_00` enum('green','white') NOT NULL DEFAULT 'white',
  16. `05_30` enum('green','white') NOT NULL DEFAULT 'white',
  17. `06_00` enum('green','white') NOT NULL DEFAULT 'white',
  18. `06_30` enum('green','white') NOT NULL DEFAULT 'white',
  19. `07_00` enum('green','white') NOT NULL DEFAULT 'white',
  20. `07_30` enum('green','white') NOT NULL DEFAULT 'white',
  21. `08_00` enum('green','white') NOT NULL DEFAULT 'white',
  22. `08_30` enum('green','white') NOT NULL DEFAULT 'white',
  23. `09_00` enum('green','white') NOT NULL DEFAULT 'white',
  24. `09_30` enum('green','white') NOT NULL DEFAULT 'white',
  25. `10_00` enum('green','white') NOT NULL DEFAULT 'white',
  26. `10_30` enum('green','white') NOT NULL DEFAULT 'white',
  27. `11_00` enum('green','white') NOT NULL DEFAULT 'white',
  28. `11_30` enum('green','white') NOT NULL DEFAULT 'white',
  29. `12_00` enum('green','white') NOT NULL DEFAULT 'white',
  30. `12_30` enum('green','white') NOT NULL DEFAULT 'white',
  31. `13_00` enum('green','white') NOT NULL DEFAULT 'white',
  32. `13_30` enum('green','white') NOT NULL DEFAULT 'white',
  33. `14_00` enum('green','white') NOT NULL DEFAULT 'white',
  34. `14_30` enum('green','white') NOT NULL DEFAULT 'white',
  35. `15_00` enum('green','white') NOT NULL DEFAULT 'white',
  36. `15_30` enum('green','white') NOT NULL DEFAULT 'white',
  37. `16_00` enum('green','white') NOT NULL DEFAULT 'white',
  38. `16_30` enum('green','white') NOT NULL DEFAULT 'white',
  39. `17_00` enum('green','white') NOT NULL DEFAULT 'white',
  40. `17_30` enum('green','white') NOT NULL DEFAULT 'white',
  41. `18_00` enum('green','white') NOT NULL DEFAULT 'white',
  42. `18_30` enum('green','white') NOT NULL DEFAULT 'white',
  43. `19_00` enum('green','white') NOT NULL DEFAULT 'white',
  44. `19_30` enum('green','white') NOT NULL DEFAULT 'white',
  45. `20_00` enum('green','white') NOT NULL DEFAULT 'white',
  46. `20_30` enum('green','white') NOT NULL DEFAULT 'white',
  47. `21_00` enum('green','white') NOT NULL DEFAULT 'white',
  48. `21_30` enum('green','white') NOT NULL DEFAULT 'white',
  49. `22_00` enum('green','white') NOT NULL DEFAULT 'white',
  50. `22_30` enum('green','white') NOT NULL DEFAULT 'white',
  51. `23_00` enum('green','white') NOT NULL DEFAULT 'white',
  52. `23_30` enum('green','white') NOT NULL DEFAULT 'white',
  53. PRIMARY KEY (`id_heure`)
  54. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  55.  
  56. --
  57. -- Contenu de la table `agences_heure`
  58. --
  59.  
  60. INSERT INTO `agences_heure` (`id_heure`, `id_agence`, `jour`, `00_00`, `00_30`, `01_00`, `01_30`, `02_00`, `02_30`, `03_00`, `03_30`, `04_00`, `04_30`, `05_00`, `05_30`, `06_00`, `06_30`, `07_00`, `07_30`, `08_00`, `08_30`, `09_00`, `09_30`, `10_00`, `10_30`, `11_00`, `11_30`, `12_00`, `12_30`, `13_00`, `13_30`, `14_00`, `14_30`, `15_00`, `15_30`, `16_00`, `16_30`, `17_00`, `17_30`, `18_00`, `18_30`, `19_00`, `19_30`, `20_00`, `20_30`, `21_00`, `21_30`, `22_00`, `22_30`, `23_00`, `23_30`) VALUES
  61. (1, 1, 'Lun', 'green', 'green', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'white', 'white', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white'),
  62. (2, 1, 'Mar', 'green', 'green', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'white', 'white', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white'),
  63. (3, 1, 'Mer', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'white', 'white', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white'),
  64. (4, 1, 'Jeu', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'white', 'white', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white'),
  65. (5, 1, 'Ven', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'white', 'white', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white'),
  66. (6, 1, 'Sam', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'white', 'white', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'green', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white'),
  67. (7, 1, 'Dim', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white', 'white');


Le fichier de connexion a la DB
  1. <?
  2. //connection a la base
  3. /* Evite le message de variables non initialisée */
  4. error_reporting(E_ALL ^ E_NOTICE);
  5.  
  6.  
  7. $serveur = "localhost";
  8. $utilisateur = "login";
  9. $motDePasse = "password";
  10. $base = "checkbox";
  11.  
  12. //coonnection
  13. $id_connex=mysql_connect("$serveur","$utilisateur","$motDePasse") or
  14. die("Impossible de se connecter a la base: Connexion impossible, essayer plus tard");
  15. mysql_select_db("$base",$id_connex);
  16. ?>


Le fichier index.php permetant d'afficher le formulaire d'edition des heures

  1. <html>
  2. <head>
  3. <title>- Mise a jour d'un ou plusieurs records ds une table grace aux case a cocher -</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. </head>
  6.  
  7. <body>
  8. <?php
  9. /* Evite le message de variables non initialisée */
  10. error_reporting(E_ALL ^ E_NOTICE);
  11.  
  12. //CONNECTION A LA BASE
  13. include('connection.php');
  14.  
  15.  
  16. //REQUETE SQL pour afficher les donnees corespondant a l'agence ex: n° 1
  17. $rec = mysql_query("SELECT * FROM agences_heure where id_agence=1") ;
  18.  
  19. ?>
  20. <form action = "update.php" method="post">
  21. <table align="center">
  22. <?
  23. /* Construction du tableau */
  24. echo ' <TR height="15" valign="top">'."\n";
  25. echo ' <TD align="center"> </TD>'."\n";
  26.  
  27. for ($y=0; $y<48; $y++) {
  28. if ($y % 2 == 0) { // Une colonne contien l'heure la seconde contient 30 des minutes en alternance
  29. /* Affichage du tableau avec les Heures 00 à 23 */
  30. echo '<TD width="25" align="right" style="border-left: 1pt solid black; border-bottom: 1pt dotted black;">'.sprintf("%02d", $heures++).':</TD>'."\n";
  31. } else {
  32. /* Affichage du tableau avec les Heures 00 à 23 */
  33. echo '<TD width="25" align="center" style="border-right: 0pt solid black; border-bottom: 1pt dotted black;">30</TD>'."\n";
  34. }
  35. }
  36. echo ' </TR>'."\n";
  37.  
  38.  
  39. $i = 0;
  40. while($data = mysql_fetch_array($rec))
  41. {
  42. if ($i % 2 == 0) { // alterner les couleurs de chaque ligne
  43. $color='E5E5E5';
  44. } else {
  45. $color='FEFEFE';
  46. }
  47. echo '<TR bgcolor="#'.$color.'"><TD align="center" class="horaireentete">'.$data['jour'].'</TD>'."\n";
  48. for ($z=3; $z<51; $z++) {
  49.  
  50. echo '<TD align="center" style="border-left: 1pt solid black; border-right: 0pt;"><input class="'.$color.'" type="checkbox" name="sup[]" value="'.$data[$z].'_'.$data['id_agence'].'_'.$data['jour'].'_'.mysql_field_name($rec, $z).'" '; // Je concat afin d'otenir les infos pour chaque checkbox
  51. if ($data[$z] == "green") { echo 'checked';} // ajout d'un checked pour afficher la case coché si la valeur corespond a green
  52. echo '</TD>'."\n";
  53. }
  54. echo '</TR>'."\n";
  55. $i++;
  56. }
  57.  
  58. echo '<tr><td colspan="49" align="center">';
  59. echo '<input type="hidden" name="agencenum" value="5">';
  60. echo '<input type="submit" value="Valider">';
  61. echo '</td></tr></table> ';
  62. ?>
  63. </form>
  64. </body>
  65. </html>


Le fichier update.php qui permet de recuperer les variable transmise et metre a jour la DB
  1. <html>
  2. <head>
  3. <title>traitement formulaire</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. <script language="JavaScript" type="text/JavaScript">
  6. function retour()
  7. {
  8. document.location = "index.php";
  9. }
  10. </script>
  11. </head>
  12.  
  13. <body>
  14. <?
  15. /* Evite le message de variables non initialisée */
  16. error_reporting(E_ALL ^ E_NOTICE);
  17.  
  18. include('connection.php');
  19.  
  20. if(isset($_POST['sup'])){ // Si au moin une case est coché
  21.  
  22. $agencenum = $_POST["agencenum"]; // recuperation du n° de l'agence via $_POST depuis le formulaire
  23.  
  24. /* uptdate de la table afin de metre toutes les heures de l'agence a white => Fermeture totale*/
  25. /* on recupere tout les champs de l'agence de la table */
  26. $rec = mysql_query("SELECT * FROM agences_heure where id_agence=$agencenum");
  27. for ($z=3; $z<51; $z++) { // $z= commance a 3 car on commance 3eme colonne, juste les heures
  28. $a=mysql_field_name($rec, $z); // recuperation des nom des colonne de la table afin de ne pas saisir tout les champs
  29. $rqt_clean = "UPDATE agences_heure SET $a = 'white' where id_agence='$agencenum'";// mise a jour
  30. $query = mysql_query($rqt_clean) or die (erreur);
  31. }
  32. /* les champs de l'agence sont tous a white, on peut metre a jour avec les données du formulaire */
  33. for ($i = 0, $c = count($_POST['sup']); $i < $c; $i++) {
  34. $valeur = substr($_POST['sup'][$i], 0, 5); // retourne "green ou white"
  35. $agence = substr($_POST['sup'][$i], 6, 1); // retourne "N° agence"
  36. $jour = substr($_POST['sup'][$i], 8, 3); // retourne "jour"
  37. $heure = substr($_POST['sup'][$i], 12, 5); // retourne "heure"
  38.  
  39. $rqt_sql = "UPDATE agences_heure SET $heure = 'green' where id_agence='$agence' and jour='$jour'";
  40. $query = mysql_query($rqt_sql) or die ($rqt_sql);
  41. }
  42. }
  43. ?>
  44. <script>
  45. retour();</script>
  46. </body>
  47. </html>


le script est assé gourmand car il vide les champs puis les remplis avec les nouvelles valeur selectioné "cases cochés"
Voila j'espere que cela pourra aider certain d'entre vous
m
0
l
24 Janvier 2010 16:59:27

Vraiment parfois je ne sais pas pourquoi les gens demandent de l'aide pour se borner dans des erreurs absolument énormes ... Ce code est horrible ...
m
0
l
26 Janvier 2010 19:41:55

Oui je sais il est horrible :fou:  , mais j'ai eu besoin d'une aide par rapport a un objectif bien precit exemple concret, malheureusement je n'ai pas eu de réponses :cry:  , hormis la tienne, merci déjà de m'avoir lu et d'avoir essayer de m'aider, mais cela ne correspondait pas a mes besoins,

Je suis preneur si tu ou vous avez une idée pour un code propre et léger, revoir l'archi de la base, mai mon but et vraiment de gérer des heures d'ouvertures donc affichage uniquement d'une semaine qui sera toujours la même durant l'année sauf besoin de changer d'où les checkbox .

Merci encore
m
0
l
a c 145 L Programmation
26 Janvier 2010 23:31:39

Pour ma part, je ferais une table du genre:
agence, lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche
Dans le champ "agence", l'id de l'agence, dans les autres champs, un serialize des horaires d'ouverture.
Si tu n'as pas de recherche à faire sur les horaires, tu n'as du coup qu'un enregistrement assez simple par agence.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS