Se connecter / S'enregistrer
Votre question

Formulaire et bases de données

Tags :
  • Interface
  • Programmation
Dernière réponse : dans Programmation
3 Mars 2010 08:43:11

Bonjour,

Dans le cadre d'un stage en entreprise, je souhaiterais créer une interface de "Recherche automatique" qui fonctionnerait sur ce principe :
L'outil de recherche automatique propose une ou plusieurs solutions à l'utilisateur, en fonction des critères qu'il lui aura renseigné.
L'utilisateur choisit ses critères via plusieurs menus déroulants (sous forme de formulaire html).

Plus conctrètement :

L'utilisateur (ou client) souhaiterais commander un système à l'entreprise, qui en possède de nombreux (adaptés à telle ou telle situation). Pour l'aider à faire son choix, et afin qu'il n'ait pas besoin d'éplucher le catalogue en détail, l'entreprise proposerait un outil de recherche automatique (sur son site web). Le formulaire comporterait les champs suivants :
- Type de machine (choix possibles : A22, H11, B15, etc...)
- Vitesse d'utilisation (choix possibles : <100 m/mn, <300 m/mn ou >300 m/mn)
- Domaine d'application (choix possibles : emballage carton, emballage bois, etc...)
- Type de système (choix possibles : statique ou dynamique)
- Système dépendant du sens de rotation? (choix possibles : oui ou non)

L'utilisateur n'étant pas obligé de sélectionner un choix pour chaque champs du formulaire.
Une fois qu'il a fait son choix, il clique sur le bouton "Rechercher" et devrait atterir sur une page lui donnant le ou les noms de systèmes qui conviennent à son besoion.
C'est la partie que je ne sais pas réaliser (le formulaire html étant déjà créé).
Ayant quelques vagues notions en BDD, je me doute qu'elles seront nécessaire pour rendre mon formulaire viable, mais je ne vois même pas comment partir... Quelles tables créer? Avec quelles entités? Comment lier tout ça?...etc.

J'espère que quelqu'un pourra m'aider, c'est très important que je réussisse à réaliser ce formulaire, étant donné que l'idée parraît très intéressante à l'entreprise.

Merci d'avance! :-)

Autres pages sur : formulaire bases donnees

3 Mars 2010 16:26:52

Merci pour ta réponse, j'ai jeté un oeil au totoriel, mais il ne répond pas vraiment à mon problème... Du moins, je n'y ai pas trouvé la solution...

Si quelqu'un pouvait m'orienter clairement la marche à suivre dans mon cas, je lui en serait très reconnaissante! :-)

m
0
l
Contenus similaires
4 Mars 2010 13:27:30

S'il vous plait...
Mon stage se termine bientôt, et j'aurais vraiment voulu à programmer ce formulaire... :-/
m
0
l
4 Mars 2010 15:23:36

Qu'est ce que tu n'arrives pas à faire précisément.

A priori tu as juste une requêtes en filtrant sur les données saisie dans ton formulaire pour retrouver les éléments qui correspondent.

Tu sais faire cette requête ?
On peut voir le code de ton formulaire ?
m
0
l
10 Mars 2010 09:10:22

Voilà le code de mon formulaire (il y a certainement beaucoup plus simple, mais je n'avais jamais fait de html avant, alors j'ai fait comme j'ai pu...) :

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  3. <head>
  4. <title>Les systèmes de dévidage</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. <link rel="stylesheet" media="screen" type="text/css" title="css" href="css3.css" />
  7. </head>
  8. <body>
  9.  
  10. <div id="en_tete">
  11. <p>
  12. <img src="bannieregde.png" alt="Bannière cfl" />
  13. </p>
  14.  
  15.  
  16. </div>
  17.  
  18. <div id="menu">
  19.  
  20. <div class="element_menu">
  21. <h3>Retour accueil</h3>
  22. <ul>
  23. <li><a href="page1menu.html">Lien</a></li>
  24.  
  25. </ul>
  26. </div>
  27.  
  28. <div class="element_menu">
  29. <h3>Catalogue d'informations</h3>
  30. <ul>
  31. <li><a href="page2.html">Lien</a></li>
  32.  
  33. </ul>
  34. </div>
  35.  
  36. <div class="element_menu">
  37. <h3>Outil de recherche</h3>
  38. <ul>
  39. <li><a href="page3.html">Lien</a></li>
  40.  
  41. </ul>
  42. </div>
  43. </div>
  44.  
  45. <div id="corps">
  46.  
  47.  
  48. <h2>Vous souhaitez trouver le système de dévidage qui correspond à vos besoins ?<br/></h1>
  49. <h4><em>Veuillez sélectionner un critère parmis les menus déroulant suivants, puis cliquez sur "soumettre la requête"</em><br/><br/><br/></h1>
  50. <form method="post" action="traitement.php">
  51. <p>
  52. <label for="conditionnement">Type de conditionnement ?</label><br />
  53. <select name="conditionnement" id="conditionnement">
  54. <option value="non">Non défini</option>
  55. <optgroup label="Bobines plastique">
  56. <option value="25LBS">25LBS</option>
  57. <option value="10LBS">10LBS</option>
  58. <option value="5LBS">5LBS</option>
  59. <option value="AM20">AM20</option>
  60. <option value="AM5">AM5</option>
  61. <option value="B15">B15</option>
  62. <option value="B20">B20</option>
  63. <option value="B3">B3</option>
  64. <option value="B6">B6</option>
  65. <option value="B30">B30</option>
  66. <option value="BB20">BB20</option>
  67. <option value="BB35">BB35</option>
  68. <option value="BB40">BB40</option>
  69. <option value="BP3">BP3</option>
  70. <option value="BP4">BP4</option>
  71. <option value="BP50">BP50</option>
  72. <option value="BS15">BS15</option>
  73. <option value="BS60">BS60</option>
  74. <option value="E200">E200</option>
  75. <option value="E400">E400</option>
  76. <option value="EG30">EG30</option>
  77. <option value="FT60">FT60</option>
  78. <option value="GB2">GB2</option>
  79. <option value="J55">J55</option>
  80. <option value="K355">K355</option>
  81. <option value="M70P">M70P</option>
  82. </optgroup>
  83. <optgroup label="Bobines bois">
  84. <option value="B100">B100</option>
  85. <option value="B150">B150</option>
  86. <option value="B300">B300</option>
  87. <option value="B301">B301</option>
  88. <option value="B500">B500</option>
  89. <option value="B510">B510</option>
  90. <option value="MJ100">MJ100</option>
  91. <option value="MP100">MP100</option>
  92. <option value="MP50">MP50</option>
  93. <option value="MP110">MP110</option>
  94. <option value="MP120">MP120</option>
  95. <option value="MP90">MP90</option>
  96. <option value="MR100">MR100</option>
  97. </optgroup>
  98. <optgroup label="Futs carton">
  99. <option value="C780">C780</option>
  100. <option value="P500">P500</option>
  101. <option value="PPH760">PPH760</option>
  102. <option value="P1537">P1537</option>
  103. <option value="P604">P604</option>
  104. <option value="P608">P608</option>
  105. </optgroup>
  106. <optgroup label="Tourets bois">
  107. <option value="R250">R250</option>
  108. <option value="R260">R260</option>
  109. <option value="R400">R400</option>
  110. <option value="R500">R500</option>
  111. <option value="R510">R510</option>
  112. <option value="R700">R700</option>
  113. <option value="R709">R709</option>
  114. <option value="RM700">RM700</option>
  115. <option value="RP300">RP300</option>
  116. <option value="RP250">RP250</option>
  117. <option value="RP560">RP560</option>
  118. <option value="SIG">SIG</option>
  119. </optgroup>
  120. <optgroup label="Tourets bois (bande collée)">
  121. <option value="T09">T09</option>
  122. <option value="T13">T13</option>
  123. <option value="T15">T15</option>
  124. <option value="T17">T17</option>
  125. <option value="TD09">TD09</option>
  126. <option value="TD08">TD08</option>
  127. <option value="Z400">Z400</option>
  128. <option value="Z6495">Z6495</option>
  129. <option value="Z7770">Z7770</option>
  130. </optgroup>
  131. </select>
  132. </p>
  133. <p>
  134. <label for="utilisation">Type d'utilisation ?</label><br />
  135. <select name="utilisation" id="utilisation">
  136. <option value="non">Non défini</option>
  137. <optgroup label="Utilisations">
  138. <option value="Brochage">Brochage</option>
  139. <option value="Cerclage">Cerclage</option>
  140. <option value="Emballage bois">Emballage bois</option>
  141. <option value="Emballage carton">Emballage carton</option>
  142. <option value="Agrafe (fil plat)">Agrafe (fil plat)</option>
  143. <option value="Agrafe (fil rond)">Agrafe (fil rond)</option>
  144. <option value="Soudure">Soudure</option>
  145. <option value="Trombone">Trombone</option>
  146. <option value="Rayon">Rayon</option>
  147. <option value="Armature (cable)">Armature (cable)</option>
  148. <option value="Armature (gaine)">Armature (gaine)</option>
  149. <option value="Armature (tuyau)">Armature (tuyau)</option>
  150. <option value="Ressort">Ressort</option>
  151. <option value="Liens">Liens</option>
  152. <option value="Façonage">Façonage</option>
  153. <option value="Brosse">Brosse</option>
  154. <option value="Grillage">Grillage</option>
  155. <option value="Crochet">Crochet</option>
  156. <option value="Chaîne">Chaîne</option>
  157. <option value="Fibre">Fibre</option>
  158. <option value="Reliure">Reliure</option>
  159. <option value="Rivet">Rivet</option>
  160. <option value="Epingle">Epingle</option>
  161. <option value="Cintre">Cintre</option>
  162. <option value="Autre">Autre</option>
  163. </optgroup>
  164. </select>
  165. </p>
  166. <p>
  167. <label for="devidage">Type de dévidage ?</label><br />
  168. <select name="devidage" id="devidage">
  169. <option value="non">Non défini</option>
  170. <optgroup label="Devidage">
  171. <option value="Statique">Statique</option>
  172. <option value="Dynamique">Dynamique</option>
  173. </optgroup>
  174. </select>
  175. </p>
  176. <p>
  177. <label for="vitesse">Vitesse de dévidage ?</label><br />
  178. <select name="vitesse" id="vitesse">
  179. <option value="non">Non défini</option>
  180. <optgroup label="Vitesse">
  181. <option value="<100m/min"><100m/min</option>
  182. <option value="<300m/min"><300m/min</option>
  183. <option value=">300m/min">>300m/min</option>
  184. </optgroup>
  185. </select>
  186. </p>
  187. <p>
  188. <label for="sens">Système dépendant du sens de rotation ?</label><br />
  189. <select name="sens" id="sens">
  190. <option value="non">Non défini</option>
  191. <option value="Oui">Oui</option>
  192. <option value="Non">Non</option>
  193. </optgroup>
  194. </select>
  195. </p>
  196. <p>
  197. <label for="pac">Possibilité de dévider "par à-coup" ?</label><br />
  198. <select name="pac" id="pac">
  199. <option value="non">Non défini</option>
  200. <option value="Oui">Oui</option>
  201. <option value="Non">Non</option>
  202. </optgroup>
  203. </select>
  204. </p>
  205. <p>
  206. <label for="sag">Possibilité de dévider en "stop and go" ?</label><br />
  207. <select name="sag" id="sag">
  208. <option value="non">Non défini</option>
  209. <option value="Oui">Oui</option>
  210. <option value="Non">Non</option>
  211. </optgroup>
  212. </select>
  213. </p>
  214.  
  215. <p>
  216. <br/><br/><input type="submit" /> <input type="reset" />
  217. </p>
  218.  
  219. </form>
  220. </div>
  221. </body>
  222. </html>



Le formulaire apparait correctement sur la page web, mais mon problème consiste à le rendre viable, c'est à dire qu'en cliquant sur "soumettre la requête", l'utilisateur arrive sur une page où on lui popose les différents systèmes correspondant aux critères qu'il aura mentionné dans le formulaire.

Je ne sais effectivement pas faire la requête correspondante. Je ne sais même pas comment commencer. Dans un premier temps il faut que je créé les tables, mais je ne vois même pas lesquelles? Faut-il que je créé une table appelée "système" et contenant tous les critères proposés dans le formulaire?...

Enfin, je suis un peu perdue...

Merci de vous intéresser à mon problème!
m
0
l
18 Mars 2010 14:02:05

Je relance le sujet car j'ai essayé d'avancer mais je suis toujours bloquée...

Je pensais avoir trouvé la solution en créant une unique table "système" comportant un champ "id" et un champ "nom", ainsi que des champs correspondant aux critères du formulaire et en écrivant ma requête ainsi :

Citation :
<?php
mysql_query('SELECT *
FROM systeme
WHERE machine="' . $_POST['type_machine'] . '"
AND vitesse="' . $_POST['vitesse'] . '"
AND application="' . $_POST['type'] . '"
AND type="' . $_POST['type_systeme'] . '"
AND sensrotation="' . $_POST['dependant_sens'] . '"');


Le problème, c'est que les champs "type de machine" et "domaine d'application" peuvent comporter plusieurs entrées pour un même système... C'est-à-dire qu'un même système peut être addapté sur plusieurs machines et peut être utilisé pour plusieurs applications. Comment l'écrire dans ma base de donnée? Je pourrais faire comme ça :

Id | Nom | Machine | Vitesse | Application | Type | SensRotation
1 | Système A | H11 | 300 m/min | emballage carton | statique | Non
2 | Système A | B16 | 300 m/min | emballage carton | statique | Non
3 | Système A | H11 | 300 m/min | emballage bois | statique | Non
4 | Système A | H11 | 300 m/min | rayonnage | statique | Non
etc...
Et vu le nombre de systèmes de que je dois classer, je n'aurais pas fini...!

Alors j'ai pensé créer plusieurs tables : "machine", "application" et "système".

Le MLD donnerait :

Machine (Id, Nom)
Application (Id, Nom)
Système (Id, Nom, Vitesse, Type, SensRotation)

Or, mes 2 cardinalités sont "n vers n", je dois donc créer 2 nouvelles tables :

Convient (id_application, id_machine, nombre_application)
Nécessite (id_conditionnement, id_système, nombre_système)


Pensez-vous que je devrais plutôt continuer comme ça, ou bien créer une unique table "système" ?

Ensuite, si je garde les tables que j'ai trouvé à partir du MLD, comment rentrer tout ça dans Phpmyadmin? Pour les tables "machine", "application" et "système", pas de problème, mais pour les 2 autres :
Faut-il que je les créé manuellement aussi?
Et au niveau syntaxe, comment dois-je écrire les clés étrangères?
Et comment déterminer 2 clés primaires? (le logiciel n'en prend qu'une seule)


Merci d'avance, j'ai vraiment besoin de votre aide, je dois programmer ça pour demain...! :sarcastic: 
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