aide pour script reservation d'ateliers

aide pour script reservation d'ateliers - PHP - Programmation

Marsh Posté le 07-04-2011 à 11:45:04    

bonjour,  
 
 
en parcourant un forum je suis tombé sur ce post, http://forum.hardware.fr/hfr/Progr [...] 5281_1.htm.  
qui traite d' un script de reservation d'evenements qui affiche les places restantes apres chaques inscriptions.  j'ai tenté le modifier pour apporter des fonctionnalites différentes : voilà l'exemple en ligne :
 
http://www.ccsti74-crangevrier.com [...] ulaire.php
http://www.ccsti74-crangevrier.com [...] estion.php
 
 
mais je voudrais que les gens puissent s'inscrire à plusieurs ateliers en même temps quand ils cochent plusieurs cases à la fois et ça ne marche pas . avez-vous une idée pour ameliorer cela ?  
 
j'ai un probleme egalement pour gerer les accents...  
 
Merci d'avance.


Message édité par baxterbax le 07-04-2011 à 11:48:29
Reply

Marsh Posté le 07-04-2011 à 11:45:04   

Reply

Marsh Posté le 07-04-2011 à 17:45:52    

Les accents : pb de charset, traité maintes fois sur ce forum et plus généralement sur le web => recherche ici ou sur Google
 
Sans le code source, on va pas pouvoir t'aider :/ Les 2 liens donnent l'interprétation du code php, donc le html généré, pas le code source... Mais là comme ça, je dirais qu'il faut que tu fasses une boucle sur les ateliers cochés et créer autant d'entrées dans la BD que d'ateliers cochés  ;)


---------------
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 07-04-2011 à 20:43:52    

rufo a écrit :

Les accents : pb de charset, traité maintes fois sur ce forum et plus généralement sur le web => recherche ici ou sur Google
 
Sans le code source, on va pas pouvoir t'aider :/ Les 2 liens donnent l'interprétation du code php, donc le html généré, pas le code source... Mais là comme ça, je dirais qu'il faut que tu fasses une boucle sur les ateliers cochés et créer autant d'entrées dans la BD que d'ateliers cochés  ;)


 
 
merci pour ta réponse. en ce qui concerne  les accents je vais continuer effectivement mes recherches ici et ailleurs .  
 
il faut rendre à cesar ce qui  est à cesar .je n'ai fait qu'apporter quelques modifications au script  de la page formulaire inscription ainsi que la page gestion :  
 
 
 
page formulaire.
 

Code :
  1. <?php
  2. mysql_connect("", "", "" ) or die(mysql_error());
  3. mysql_select_db("" );
  4. if(isset($_POST['nom']))
  5. {
  6. if(!empty($_POST['nom']))
  7. {
  8. $nom = $_POST['nom'];
  9. $activite = $_POST['activite'];
  10. $prenom = $_POST['prenom'];
  11. $email = $_POST['email'];
  12. mysql_query("INSERT INTO noms VALUES('', '" . $activite . "', '" . $nom . "', '" . $prenom . "','" . $email . "')" ) or die (mysql_error());
  13. header('Location: form1.php?inscription=ok');
  14. }
  15. else
  16. {
  17. echo 'Vous devez indiquer vos coordonn&eacute;es dans les champs &agrave; remplir.';
  18. }
  19. }
  20. if(isset($_GET['inscription']) AND $_GET['inscription'] = 'ok')
  21. {
  22. echo 'Votre inscription a bien &eacute;t&eacute; prise en compte ! Merci.';
  23. }
  24. echo '<form method="post" action="form1.php">';
  25. $reponse0 = mysql_query('SELECT COUNT(*) AS nb_activites FROM activites') or die(mysql_error());
  26. $donnees0 = mysql_fetch_array($reponse0);
  27. $nb_activites = $donnees0['nb_activites'];
  28. echo '<h3>Liste des activit&eacute;s</h3>';
  29. if($nb_activites == 0)
  30. {
  31. echo 'Aucune activit&eacute; disponible pour le moment.
  32. ';
  33. }
  34. else
  35. {
  36. if($nb_activites == 1)
  37. {
  38. echo 'Il y a '.$nb_activites.' activit&eacute; disponible pour le moment.
  39. ';
  40. }
  41. else
  42. {
  43. echo 'Il y a '.$nb_activites.' activit&eacute;s disponibles pour le moment.
  44. ';
  45. }
  46. }
  47. echo '<form>';
  48. $reponse1 = mysql_query('SELECT * FROM activites ORDER BY id ASC') or die(mysql_error());
  49. while ($donnees1 = mysql_fetch_array($reponse1))
  50. /////////////////////////
  51. ////////////////////////////
  52. {
  53. $id = $donnees1['id'];
  54. $activite = $donnees1['activite'];
  55. $details = $donnees1['details'];
  56. $places = $donnees1['places'];
  57. echo '<fieldset>';
  58. echo '<legend>Activit&eacute; n&deg;'.$id.'</legend>';
  59. echo 'Activit&eacute; : <strong>'.$activite.'</strong>
  60. ';
  61. if(empty($details))
  62. {
  63. echo '';
  64. }
  65. else
  66. {
  67. echo 'D&eacute;tails : '.nl2br($details).'';
  68. }
  69. echo '<hr />';
  70. //echo '</label>Inscrivez votre nom :</label> <input type="text" name="nom" />
  71. ';
  72. //echo '<input type="hidden" name="activite" value="'.$id.'" />
  73. ';
  74. // echo '<input type="hidden" name="activite" value="nom" />
  75. ';
  76. //echo '<input type="hidden" name="activite" value="'.$nom.'" />
  77. ';
  78. //echo '<input type="hidden" name="activite" value="'.$nom.'" />
  79. ';
  80. echo '<input type="checkbox" name="activite" value="'.$id.'" />
  81. ';
  82. $reponse2 = mysql_query('SELECT COUNT(*) AS nb_de_places_occupees FROM noms WHERE activite = '.$id.'');
  83. $donnees2 = mysql_fetch_array($reponse2);
  84. $nb_de_places_restantes = $places - ($donnees2['nb_de_places_occupees']);
  85. echo 'Nombre de places total : '.$places.'
  86. ';
  87. echo 'Nombre de places restantes : '.$nb_de_places_restantes.'
  88. ';
  89. echo '</fieldset>
  90. ';
  91. }
  92. mysql_close();
  93. echo'<table border="0" cellpadding="0" cellspacing="0">';
  94. echo'<tr>';
  95. echo'<td style="padding-bottom:5px">Nom : </td>';
  96. echo'<td width="10">&nbsp;</td>';
  97. echo'<td style="padding-bottom:5px"><input name="nom" type="text" value="'.$nom.'" size="50" class="field"/></td>';
  98. echo'</tr>';
  99. echo'<tr>';
  100. echo'<td style="padding-bottom:5px">Pr&eacute;nom</td>';
  101. echo'<td width="10">&nbsp;</td>';
  102. echo'<td style="padding-bottom:5px"><input type="text" name="prenom" value="'.$prenom.'" size="50" class="field" />';
  103. echo'</td>';
  104. echo'</tr>';
  105. echo'<tr>';
  106. echo'<td style="padding-bottom:5px">Mail : </td>';
  107. echo'<td width="10">&nbsp;</td>';
  108. echo'<td style="padding-bottom:5px"><input type="text" name="email" value="'.$email.'" size="50" class="field" />';
  109. echo'</td>';
  110. echo'</tr>';
  111. echo'</table>';
  112. echo '<input type="submit" value="Valider"></form>';
  113. ?>


 
le script gestion des activites :
 
 

Code :
  1. <?php
  2. mysql_connect("", "", "" ) or die(mysql_error());
  3. mysql_select_db("" );
  4. if(isset($_GET['supprimer']))
  5. {
  6. $_GET['supprimer'] = $_GET['supprimer'];
  7. mysql_query('DELETE FROM activites WHERE ID = \'' . $_GET['supprimer'] . '\'');
  8. header('location:gestion.php');
  9. }
  10. if(isset($_POST['activite']) AND isset($_POST['places']) AND isset($_POST['details']))
  11. {
  12. if(!empty($_POST['activite']) AND !empty($_POST['places']))
  13. {
  14. $activite = $_POST['activite'];
  15. $details = $_POST['details'];
  16. $places = $_POST['places'];
  17. mysql_query("INSERT INTO activites VALUES('', '" . $activite . "', '" . $details . "', '" . $places . "')" ) or die (mysql_error());
  18. header('Location: gestion.php?ajout=ok');
  19. }
  20. else
  21. {
  22. echo '
  23. Vous devez remplir tous les champs obligatoires.';
  24. }
  25. }
  26. if(isset($_GET['ajout']) AND $_GET['ajout'] == 'ok')
  27. {
  28. echo '
  29. L\'activité a été ajoutée avec succès.';
  30. }
  31. echo '<h3>Ajouter une activité </h3>';
  32. echo '<form action="gestion.php" method="post">';
  33. echo '<label>Nom de l\'activité : </label><input type="text" name="activite" />
  34. ';
  35. echo '<label>Nombre de places dispo : </label><input type="text" name="places" />
  36. ';
  37. echo '<label>Description de l\'activité (facultatif) : </label>
  38. ';
  39. echo '<textarea cols="60" rows="10" type="text" name="details"></textarea>
  40. ';
  41. echo '<input type="submit" value="Enregistrer" />';
  42. $reponse0 = mysql_query('SELECT COUNT(*) AS nb_activites FROM activites') or die(mysql_error());
  43. $donnees0 = mysql_fetch_array($reponse0);
  44. $nb_activites = $donnees0['nb_activites'];
  45. echo '<hr /><h3>Liste des activités</h3>';
  46. if($nb_activites == 0)
  47. {
  48. echo 'Aucune activité disponible pour le moment.
  49. ';
  50. }
  51. else
  52. {
  53. if($nb_activites == 1)
  54. {
  55. echo 'Il y a '.$nb_activites.' activité disponible pour le moment.
  56. ';
  57. }
  58. else
  59. {
  60. echo 'Il y a '.$nb_activites.' activités disponibles pour le moment.
  61. ';
  62. }
  63. }
  64. $reponse1 = mysql_query('SELECT * FROM activites ORDER BY id ASC') or die(mysql_error());
  65. while ($donnees1 = mysql_fetch_array($reponse1))
  66. {
  67. $id = $donnees1['id'];
  68. $activite = $donnees1['activite'];
  69. $details = $donnees1['details'];
  70. $places = $donnees1['places'];
  71. echo '<fieldset>';
  72. echo '<legend>Activité n°'.$id.'</legend>';
  73. echo 'Activité : <strong>'.$activite.'</strong>
  74. ';
  75. if(empty($details))
  76. {
  77. echo '';
  78. }
  79. else
  80. {
  81. echo 'Détails : '.nl2br($details).'';
  82. }
  83. echo '<hr />';
  84. $reponse2 = mysql_query('SELECT COUNT(*) AS places_occupees FROM noms WHERE activite = '.$id.'') or die(mysql_error());
  85. $donnees2 = mysql_fetch_array($reponse2);
  86. $places_occupees = $donnees2['places_occupees'];
  87. if($places_occupees == 0)
  88. {
  89. echo 'Aucun membre ne s\'est inscrit pour cette activité.';
  90. }
  91. else
  92. {
  93. echo '<strong>Liste des membres pour cette activité ('.$places_occupees.'/'.$places.')</strong>
  94. ';
  95. }
  96. $result= mysql_query('SELECT * FROM noms WHERE activite = '.$id.' ORDER BY nom') or die(mysql_error());
  97. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  98. printf("Nom : %s : Prénom : %s : email : %s", $row["nom"], $row["prenom"],$row["email"]);
  99. $Nom = $row[0];
  100. $prenom = $row[1];
  101. $email = $row[3];
  102. echo'<br>';
  103. }
  104. { $nom = $donnees3['nom'];
  105. //echo '<input type="text" name="nom" value="'.$nom.'" enable="enable" />
  106. ';
  107. }
  108. echo '</fieldset>
  109. ';
  110. }
  111. mysql_close();
  112. ?>


Message édité par baxterbax le 08-04-2011 à 11:10:18
Reply

Marsh Posté le 08-04-2011 à 09:49:46    

Merci d'utiliser les balises "code" de ce forum pour poster ton code, là c'est dur de le lire :/


---------------
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 08-04-2011 à 11:13:04    

rufo a écrit :

Merci d'utiliser les balises "code" de ce forum pour poster ton code, là c'est dur de le lire :/


 
 
 
 
effectivement c'est mieux comme ça . merci encore pour ton aide

Reply

Marsh Posté le 08-04-2011 à 11:26:12    

Page formulaire
L32 -> test mal écrit : privilégier && à la place de AND et mettre == à la place de =
 
L132 -> le name doit être un tableau pour gérer plusieurs activités : name="activite[]"    -> comme ça coté php, ça sera vu comme un tableau, donc facile de faire une boucle dessus avec foreach ;)
 
Cela dit, merci d'indenter le code car franchement, c'est très dur à lire et en plus, c'est codé vraiment "à l'arrache" (pas de séparation entre html et traitement php par ex :/ )
 


---------------
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 12-04-2011 à 17:49:02    


merci encore de ton aide, par contre je ne vois pas tres bien ce que tu veux dire par :  
 
 
L132 -> le name doit être un tableau pour gérer plusieurs activités : name="activite[]"    -> comme ça coté php, ça sera vu comme un tableau, donc facile de faire une boucle dessus avec foreach ;)
 
merci  
 
 
 

Reply

Marsh Posté le 13-04-2011 à 17:16:57    

si name="activite", tu ne vas avoir côté php qu'une valeur reçue de ton formulaire (la première ou la dernière cochée). Or, tu veux pouvoir en cocher plusieurs, faut donc mettre name="activite[]" pour que côté php, la valeur reçue soit un tableau.


---------------
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 19-04-2011 à 17:47:57    

salut,  
 
bon voilà que je tourne en rond pour mon script inscription : j'ai bien  essayé de mettre les crochets et de chercher sur le net comment faire une boucle . mais je crois que je suis vraiment bloqué pour avancé. merci de ton aide et si jamais tu peux regarder.  

rufo a écrit :

si name="activite", tu ne vas avoir côté php qu'une valeur reçue de ton formulaire (la première ou la dernière cochée). Or, tu veux pouvoir en cocher plusieurs, faut donc mettre name="activite[]" pour que côté php, la valeur reçue soit un tableau.


Message édité par baxterbax le 21-04-2011 à 10:58:47
Reply

Marsh Posté le 19-04-2011 à 17:53:36    

ben une boucle du genre  

Code :
  1. foreach($_POST['activite'] as $i => $Value)
  2. {
  3.    // Traitement
  4. }


 
Si c'est ça que tu cherchais, c'est archi basic comme info :/


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

Sujets relatifs:

Leave a Replay

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