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

  FORUM HardWare.fr
  Programmation
  PHP

  Tableau de réservations

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tableau de réservations

n°2202114
ghmpou
Posté le 06-09-2013 à 20:48:43  profilanswer
 

Bonjour tout le monde,
 
je souhaite concevoir un système (basique) de réservation de créneaux pour une salle de sport.
Le principe est que les utilisateurs vont en ligne choisir le jour et l'heure à laquelle ils veulent venir.
 
Mais je n'ai pas un esprit formaté à la construction php/mysql !! Alors je ne sais pas comment je peux faire fonctionner ça concernant le choix du créneau horaire.
 
Voici l'adresse du calendrier : http://www.osteopathe-82.com/KFWod/calendrier.php
 
Lorsqu'on clique sur la date on arrive à un tableau (tout de HTML vêtu) mais c'est là que se pose mon probleme.
Je souhaite faire apparaitre dans la colonne de droite la liste des utilisateurs qui sont déjà présents dans ce créneau (maximum 12 inscrits).
 
Mais je bugue.
 
J'ai crée une table mysql avec les champs: id, id_user, jour, mois, annee, heure... mais je ne sais pas comment afficher les résultats d'une requete de manière ordonnée.
Je peux toujours, pour chaque tranche horaire, lancer une requete différente... mais je vais pas faire le bourrin alors que je suis sûr qu'il y a moyen de faire différemment...
 
Je ne sais pas si je suis clair, mais j'aurai besoin d'éclaircissements sur la manière dont je dois concevoir ce projet..
 
D'avance merci !!


---------------
www.bubbleburstband.com
mood
Publicité
Posté le 06-09-2013 à 20:48:43  profilanswer
 

n°2202287
ghmpou
Posté le 09-09-2013 à 13:03:05  profilanswer
 

Up ? Personne pour essayer de me guider un petit peu ?


---------------
www.bubbleburstband.com
n°2202371
Profil sup​primé
Posté le 10-09-2013 à 01:13:33  answer
 

Bonjour, pour obtenir une liste ordonnée des résultat il faut le trieréventuellement et pour faire ceci il semble que tu puisse regarder le mot clé ORDER.

n°2202517
ghmpou
Posté le 10-09-2013 à 23:28:53  profilanswer
 

Bonjour et déjà merci pour cette première réponse, même si elle ne m'aide pas vraiment.
J'ai essayé de réfléchir aux ORDER BY / GROUP BY etc...
 
Finalement je viens de faire différemment mais je rencontre un probleme. Ma page génère de nombreuses requetes sql, ce qui actuellement fait ramer mon serveur mutualisé dès que j'essaie d'actualiser ma page.
 
Est ce que quelqu'un pourrait me dire si j'ai fait une erreur (boucle infinie ?) ou bien comment optimiser mon code de manière a alléger la charge serveur ?
 

Code :
  1. $tab_h = 10; // je définis l'heure de départ
  2. print('<table bgcolor="#fff">');
  3. while ($tab_h < 20)
  4. {
  5. print('
  6. <tr>
  7. <td align="center" valign="middle" bgcolor="#CCCCCC">'.$tab_h.' h</td>
  8. ');
  9. // quels users dans cette plage horaire ?
  10. $req = mysql_query('SELECT id_user, COUNT(id) AS nb FROM KFWod_calendrier WHERE heure="'.$tab_h.'" AND jour="'.$jour.'" AND mois="'.$mois.'" AND annee="'.$annee.'" ');
  11. $req2 = mysql_fetch_array($req);
  12. $nb = $req2['nb'];
  13. $nbdiff = 12 - $nb;
  14. if ($nb >= 12)
  15. {
  16.  $affich_reserver = "# COMPLET #";
  17.  $bgcolor = "#333333";
  18. }
  19. elseif ($nb > 9 && $nb < 12)
  20. {
  21.  $affich_reserver = "<a href=\"#\" class=\"cellule_dark\">Réserver ($nbdiff dispo)</a>";
  22.  $bgcolor = "#FF5353";
  23. }
  24. elseif ($nb > 6 && $nb <= 9)
  25. {
  26.  $affich_reserver = "<a href=\"#\" class=\"cellule_dark\">Réserver ($nbdiff dispo)</a>";
  27.  $bgcolor = "#EBE78B";
  28. }
  29. else
  30. {
  31.  $affich_reserver = "<a href=\"#\" class=\"cellule_dark\">Réserver ($nbdiff dispo)</a>";
  32.  $bgcolor = "#B5E8C9";
  33. }
  34. print('
  35. <td align="center" bgcolor="'.$bgcolor.'">'.$affich_reserver.'</td>
  36. <td bgcolor="#F8F8F8">
  37. ');
  38. while ($req3 = mysql_fetch_array($req))
  39. {
  40.  $id_user = $req3['id_user'];
  41.  $req_avatar = mysql_query('SELECT pseudo, avatar FROM KFWod_users WHERE id_user="'.$id_user.'" ');
  42.  $req2_avatar = mysql_fetch_array($req_avatar);
  43.  $pseudo = $req2_avatar['pseudo'];
  44.  $pseudo_majuscule = ucfirst($pseudo);
  45.  $avatar = $req2_avatar['avatar'];
  46.  if ($avatar != "defaut.jpg" )
  47.  {
  48.   $avatar = $id_user."_".$avatar;
  49.  }
  50.  else
  51.  {
  52.   $avatar = "defaut.jpg";
  53.  }
  54.  if (!$_SESSION['id_user'])
  55.  {
  56.   $avatar_affich = "";
  57.  }
  58.  else
  59.  {
  60.   $avatar_affich = "<a href=\"profile.php?id_user=$id_user_h\" class=\"info\"><img src=\"_img/avatars/$avatar\" width=\"30px\" align=\"absmiddle\" border=\"0\"><span>$pseudo_majuscule</span></a> ";
  61.  }
  62.   echo "$avatar_affich";
  63. $tab_h = ($tab_h+0.5);
  64. }
  65. print('
  66. </td>
  67. </tr>
  68. ');
  69. }
  70. print('</table>');


---------------
www.bubbleburstband.com
n°2203952
ghmpou
Posté le 24-09-2013 à 15:26:44  profilanswer
 

Bon, malgré le manque d'enthousiasme concernant mon problème je l'ai résolu, même si c'est en feintant un peu au niveau du code.
Je posterai le résultat ici ce soir pour montrer ce que j'ai fait et si jamais quelqu'un veut l'améliorer ou m'indiquer comment faire ce sera avec plaisir!
 
Merci quand même ! ;)


---------------
www.bubbleburstband.com
n°2204038
ghmpou
Posté le 24-09-2013 à 22:30:20  profilanswer
 

Code :
  1. $tab_h = 10; // je définis l'heure de départ
  2. // Affichage de la date choisie
  3. $date_affich = strftime('%A %d %B %Y',strtotime("$jour-$mois-$annee" ));
  4. $date_affich = utf8_encode($date_affich);
  5. $date_affich = ucfirst($date_affich); // jeudi 11 octobre 2012, 16:03
  6. print('
  7. <div class="archives_titre"><p align="center">'.$date_affich.'</p></div>
  8. <br />
  9. ');
  10. print('
  11. <table align="center" width="95%" border="0" cellpadding="4" cellspacing="1">
  12. <tr>
  13. <td width="40px" align="center" valign="middle" bgcolor="#999999" >Horaire</td>
  14. <td width="100px" align="center" bgcolor="#999999">Réserver</td>
  15. <td bgcolor="#999999">Adhérents déjà inscrits</td>
  16. ');
  17. if ($_SESSION['rank'] >= 8)
  18. {
  19. print('
  20. <td width="70px" align="center" bgcolor="#999999">Actions</td>
  21. ');
  22. }
  23. print('
  24. </tr>
  25. ');
  26. while ($tab_h < 20)
  27. {
  28. $day = explode(" ",$date_affich);
  29. $day = $day['0'];
  30. //si on est du lundi au jeudi
  31. if (($day == "Lundi" ) || ($day == "Mardi" ) || ($day == "Mercredi" ) || ($day == "Jeudi" ))
  32. {
  33.  if ($tab_h == 13)
  34.  {
  35.   $tab_h = $tab_h + 1;
  36.   continue;
  37.  }
  38. }
  39. //si on est samedi
  40. if (($day == "Samedi" ))
  41. {
  42.  if ($tab_h == 13)
  43.  {
  44.   $tab_h = $tab_h + 1;
  45.   continue;
  46.  }
  47.  elseif ($tab_h > 14)
  48.  {
  49.   break;
  50.  }
  51. }
  52. //si on est dimanche
  53. if (($day == "Dimanche" ))
  54. {
  55.  break;
  56. }
  57. $tab_h_affich = "$tab_h";
  58. $tab_h_affich30 = "";
  59. $cellule = "cellule";
  60. print('
  61. <tr>
  62. ');
  63. // combien d'users dans cette plage horaire ? et suis-je déja inscrit ?
  64. $req = mysql_query('SELECT COUNT(id) AS nb FROM KFWod_calendrier WHERE heure="'.$tab_h.'" AND jour="'.$jour.'" AND mois="'.$mois.'" AND annee="'.$annee.'" ');
  65. $req2 = mysql_fetch_array($req);
  66. // suis je deja inscrit ?
  67. $req_check = mysql_query('SELECT id_user FROM KFWod_calendrier WHERE heure="'.$tab_h.'" AND jour="'.$jour.'" AND mois="'.$mois.'" AND annee="'.$annee.'" AND id_user="'.$_SESSION['id_user'].'" ');
  68. if(mysql_num_rows($req_check) != 0)
  69. {
  70.  // deja inscrit
  71.  $status = "uncheck";
  72.  $lien = "cal_desinscrire";
  73. }
  74. else
  75. {
  76.  $status = "check";
  77.  $lien = "cal_inscrire";
  78. }
  79. $nb = $req2['nb'];
  80. $nbdiff = 12 - $nb;
  81. if ($nb >= 12)
  82. {
  83.  $affich_reserver = "<a href=\"$lien.php?jour=$jour&mois=$mois&annee=$annee&heure=$tab_h\" class=\"petit\"><img src=\"_img/$status.png\" border=\"0\" height=\"23\" /></a><br /><span class=\"petit\">COMPLET</span>";;
  84.  $class = "resa_rouge";
  85. }
  86. elseif ($nb > 9 && $nb < 12)
  87. {
  88.  $affich_reserver = "<a href=\"$lien.php?jour=$jour&mois=$mois&annee=$annee&heure=$tab_h\" class=\"petit\"><img src=\"_img/$status.png\" border=\"0\" height=\"23\" /></a><br /><span class=\"petit\">($nbdiff places)</span>";
  89.  $class = "resa_orange";
  90. }
  91. elseif ($nb > 6 && $nb <= 9)
  92. {
  93.  $affich_reserver = "<a href=\"$lien.php?jour=$jour&mois=$mois&annee=$annee&heure=$tab_h\" class=\"petit\"><img src=\"_img/$status.png\" border=\"0\" height=\"23\" /></a><br /><span class=\"petit\">($nbdiff places)</span>";
  94.  $class = "resa_jaune";
  95. }
  96. else
  97. {
  98.  $affich_reserver = "<a href=\"$lien.php?jour=$jour&mois=$mois&annee=$annee&heure=$tab_h\" class=\"petit\"><img src=\"_img/$status.png\" border=\"0\" height=\"23\" /></a><br /><span class=\"petit\">($nbdiff places)</span>";
  99.  $class = "resa_vert";
  100. }
  101. print('
  102. <td width="40px" align="center" valign="middle" class="'.$class.' '.$cellule.'">'.$tab_h_affich.'h'.$tab_h_affich30.'</td>
  103. <td width="100px" align="center" class="'.$class.'">'.$affich_reserver.'</td>
  104. <td bgcolor="#F8F8F8">
  105. ');
  106. $requete = mysql_query('SELECT id_user FROM KFWod_calendrier WHERE heure="'.$tab_h.'" AND jour="'.$jour.'" AND mois="'.$mois.'" AND annee="'.$annee.'" ');
  107. while ($req3 = mysql_fetch_array($requete))
  108. {
  109.  $id_user = $req3['id_user'];
  110.  $req_avatar = mysql_query('SELECT pseudo, nom, prenom, avatar FROM KFWod_users WHERE id_user="'.$id_user.'" ');
  111.  $req2_avatar = mysql_fetch_array($req_avatar);
  112.  $nom = $req2_avatar['nom'];
  113.  $prenom = $req2_avatar['prenom'];
  114.  $pseudo = $req2_avatar['pseudo'];
  115.  $pseudo_majuscule = ucfirst($pseudo);
  116.  $pseudo_majuscule = utf8_encode($pseudo_majuscule);
  117.  $avatar = $req2_avatar['avatar'];
  118.  if ($avatar != "defaut.jpg" )
  119.  {
  120.   $avatar = $id_user."_".$avatar;
  121.  }
  122.  else
  123.  {
  124.   $avatar = "defaut.jpg";
  125.  }
  126.  if (!$_SESSION['id_user'])
  127.  {
  128.   $avatar_affich = "";
  129.  }
  130.  else
  131.  {
  132.   if ($_SESSION['rank'] >= 8)
  133.   {
  134.    $avatar_affich = "<a href=\"profile.php?id_user=$id_user\" class=\"info2\"><img src=\"_img/avatars/$avatar\" width=\"30px\" align=\"absmiddle\" border=\"0\"><span>$pseudo_majuscule - $nom $prenom</span></a> ";
  135.   }
  136.   else
  137.   {
  138.    $avatar_affich = "<a href=\"profile.php?id_user=$id_user\" class=\"info\"><img src=\"_img/avatars/$avatar\" width=\"30px\" align=\"absmiddle\" border=\"0\"><span>$pseudo_majuscule</span></a> ";
  139.   }
  140.  }
  141.  echo "$avatar_affich";
  142. }
  143. print('
  144. </td>
  145. ');
  146. // si admin : afficher boutons
  147. if ($_SESSION['rank'] >= 8)
  148. {
  149.  print('
  150.  <td>
  151.  <a href="ajout_resa.php?jour='.$jour.'&mois='.$mois.'&annee='.$annee.'&heure='.$tab_h.'" class="info2">
  152.  <img src="_img/add_th.png" width="20" height="20" border="0" alt="Ajouter réservation" />
  153.  <span>Ajouter une réservation</span>
  154.  </a>
  155.  <a href="edit_resa.php?jour='.$jour.'&mois='.$mois.'&annee='.$annee.'&heure='.$tab_h.'" class="info2">
  156.  <img src="_img/edit_th.png" width="20" height="20" border="0" alt="Editer réservation"/>
  157.  <span>Editer les réservations</span>
  158.  </a>
  159.  <a href="#" class="info2">
  160.  <img src="_img/del_th.png" width="20" height="20" border="0" title="Supprimer réservation"/>
  161.  <span>Supprimer toutes les réservations sur ce créneau</span>
  162.  </a>
  163.  </td>
  164.     ');
  165. }
  166. print('
  167. </tr>
  168. ');
  169. $tab_h = $tab_h + 1;
  170. }
  171. mysql_close();
  172. print('</table>');


---------------
www.bubbleburstband.com

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

  Tableau de réservations

 

Sujets relatifs
Etirer la formule de plusieurs lignes jusqu'en bas de mon tableauBoucle FOR et tableau
vérification présence valeur dans tableau associatifphp problème tableau suite requête MySQL [résolu]
mail html tableau décaléremplir un tableau HTML avec des variables JS
séparateur espace sélection tableauRecherche de valeur dans un tableau dynamique
Faire une boucle avec un argument du tableau et définir si args=nombreParsage XML vers tableau PHP
Plus de sujets relatifs à : Tableau de réservations


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