Formulaire et bases de données - PHP - Programmation
Marsh Posté le 03-03-2010 à 09:27:35
Faut que tu modélises ton processus (commandes, devis, facturation...) + les produits qui vont être proposés. Le nb de tables et leur contenu va grandement dépendre de la finesse de modélisation de tout ça (par ex, tu veux peut-être simplement permettre de créer une commande mais après, c'est un autre outil qui va gérer la facturation).
Tu peux regarder un peu le soft Astres (cf ma signature) : il est écrit en php/html/javascript/css (donc les technos dont tu auras besoin) + une BD de 66 tables (c'est pas énorme). Dans ce soft, y'a plusieurs moteurs de recherche multi-critères (c'est le nom qu'on donne à ce que tu veux faire), du plus simple (ex : celui des news) au plus compliqué (ex : celui des demandes de travaux).
Maintenant, si c'est pour faire de la vente en ligne, pas la peine de réinventer la roue : regardes le produit GPL Magento Il permet de modéliser n'importe quel produit, d'organiser un catalogue, d'avoir un moteur de recherche comme tu le veux et permet, of course, de faire de la vente et suivre tout le processus de vente...
Marsh Posté le 03-03-2010 à 09:51:45
Avant tout, merci pour ta réponse.
Je me suis certainement mal exprimée, mais en fait il n'est pas question de vente/commande en ligne. L'outil servirait au client uniquement pour l'aider à choisir son système en lui proposant une ou plusieurs possibilités correspondant à son besoin. La démarche de commande sera a effectuer par le client comme il le fait actuellement.
Dans ce cas, comment faut-il que je procède?
Je dois créer une table produit comportant les différents critères ou bien une table par critères ou bien d'autres tables? Et que dois-je faire ensuite?
Marsh Posté le 03-03-2010 à 10:38:01
Donc t'as pas la partie commande, donc pas de Magento. Mais tout le reste que je t'ai dit reste bon. Faut modéliser ton catalogue de produits -> faire le MCD (modèle conceptuel de données). Pour ça, regardes la méthode Merise (ça pourra t'aider), mais si t'es pas familier des BD, tu as de grandes chances de te planter Tu peux regarder quand même comment Magento a fait (principe d'entités et d'attributs de différents types). Tu peux regarder aussi la partie des champs personnalisés dans mon soft Astres, largement inspiré de celui du logiciel Mantis.
Marsh Posté le 10-03-2010 à 09:15:33
Je dois décidément être au niveau zéro en base de donnée, tout cela me semble être du charabia...! :-/
Peut-être que quelqu'un pourra m'aider plus précisément si je vous donne le code de mon formulaire...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Les systèmes de dévidage</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="css" href="css3.css" />
</head>
<body>
<div id="en_tete">
<p>
<img src="bannieregde.png" alt="Bannière cfl" />
</p>
</div>
<div id="menu">
<div class="element_menu">
<h3>Retour accueil</h3>
<ul>
<li><a href="page1menu.html">Lien</a></li>
</ul>
</div>
<div class="element_menu">
<h3>Catalogue d'informations</h3>
<ul>
<li><a href="page2.html">Lien</a></li>
</ul>
</div>
<div class="element_menu">
<h3>Outil de recherche</h3>
<ul>
<li><a href="page3.html">Lien</a></li>
</ul>
</div>
</div>
<div id="corps">
<h2>Vous souhaitez trouver le système de dévidage qui correspond à vos besoins ?<br/></h1>
<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>
<form method="post" action="traitement.php">
<p>
<label for="conditionnement">Type de conditionnement ?</label><br />
<select name="conditionnement" id="conditionnement">
<option value="non">Non défini</option>
<optgroup label="Bobines plastique">
<option value="25LBS">25LBS</option>
<option value="10LBS">10LBS</option>
<option value="5LBS">5LBS</option>
<option value="AM20">AM20</option>
<option value="AM5">AM5</option>
<option value="B15">B15</option>
<option value="B20">B20</option>
<option value="B3">B3</option>
<option value="B6">B6</option>
<option value="B30">B30</option>
<option value="BB20">BB20</option>
<option value="BB35">BB35</option>
<option value="BB40">BB40</option>
<option value="BP3">BP3</option>
<option value="BP4">BP4</option>
<option value="BP50">BP50</option>
<option value="BS15">BS15</option>
<option value="BS60">BS60</option>
<option value="E200">E200</option>
<option value="E400">E400</option>
<option value="EG30">EG30</option>
<option value="FT60">FT60</option>
<option value="GB2">GB2</option>
<option value="J55">J55</option>
<option value="K355">K355</option>
<option value="M70P">M70P</option>
</optgroup>
<optgroup label="Bobines bois">
<option value="B100">B100</option>
<option value="B150">B150</option>
<option value="B300">B300</option>
<option value="B301">B301</option>
<option value="B500">B500</option>
<option value="B510">B510</option>
<option value="MJ100">MJ100</option>
<option value="MP100">MP100</option>
<option value="MP50">MP50</option>
<option value="MP110">MP110</option>
<option value="MP120">MP120</option>
<option value="MP90">MP90</option>
<option value="MR100">MR100</option>
</optgroup>
<optgroup label="Futs carton">
<option value="C780">C780</option>
<option value="P500">P500</option>
<option value="PPH760">PPH760</option>
<option value="P1537">P1537</option>
<option value="P604">P604</option>
<option value="P608">P608</option>
</optgroup>
<optgroup label="Tourets bois">
<option value="R250">R250</option>
<option value="R260">R260</option>
<option value="R400">R400</option>
<option value="R500">R500</option>
<option value="R510">R510</option>
<option value="R700">R700</option>
<option value="R709">R709</option>
<option value="RM700">RM700</option>
<option value="RP300">RP300</option>
<option value="RP250">RP250</option>
<option value="RP560">RP560</option>
<option value="SIG">SIG</option>
</optgroup>
<optgroup label="Tourets bois (bande collée)">
<option value="T09">T09</option>
<option value="T13">T13</option>
<option value="T15">T15</option>
<option value="T17">T17</option>
<option value="TD09">TD09</option>
<option value="TD08">TD08</option>
<option value="Z400">Z400</option>
<option value="Z6495">Z6495</option>
<option value="Z7770">Z7770</option>
</optgroup>
</select>
</p>
<p>
<label for="utilisation">Type d'utilisation ?</label><br />
<select name="utilisation" id="utilisation">
<option value="non">Non défini</option>
<optgroup label="Utilisations">
<option value="Brochage">Brochage</option>
<option value="Cerclage">Cerclage</option>
<option value="Emballage bois">Emballage bois</option>
<option value="Emballage carton">Emballage carton</option>
<option value="Agrafe (fil plat)">Agrafe (fil plat)</option>
<option value="Agrafe (fil rond)">Agrafe (fil rond)</option>
<option value="Soudure">Soudure</option>
<option value="Trombone">Trombone</option>
<option value="Rayon">Rayon</option>
<option value="Armature (cable)">Armature (cable)</option>
<option value="Armature (gaine)">Armature (gaine)</option>
<option value="Armature (tuyau)">Armature (tuyau)</option>
<option value="Ressort">Ressort</option>
<option value="Liens">Liens</option>
<option value="Façonage">Façonage</option>
<option value="Brosse">Brosse</option>
<option value="Grillage">Grillage</option>
<option value="Crochet">Crochet</option>
<option value="Chaîne">Chaîne</option>
<option value="Fibre">Fibre</option>
<option value="Reliure">Reliure</option>
<option value="Rivet">Rivet</option>
<option value="Epingle">Epingle</option>
<option value="Cintre">Cintre</option>
<option value="Autre">Autre</option>
</optgroup>
</select>
</p>
<p>
<label for="devidage">Type de dévidage ?</label><br />
<select name="devidage" id="devidage">
<option value="non">Non défini</option>
<optgroup label="Devidage">
<option value="Statique">Statique</option>
<option value="Dynamique">Dynamique</option>
</optgroup>
</select>
</p>
<p>
<label for="vitesse">Vitesse de dévidage ?</label><br />
<select name="vitesse" id="vitesse">
<option value="non">Non défini</option>
<optgroup label="Vitesse">
<option value="<100m/min"><100m/min</option>
<option value="<300m/min"><300m/min</option>
<option value=">300m/min">>300m/min</option>
</optgroup>
</select>
</p>
<p>
<label for="sens">Système dépendant du sens de rotation ?</label><br />
<select name="sens" id="sens">
<option value="non">Non défini</option>
<option value="Oui">Oui</option>
<option value="Non">Non</option>
</optgroup>
</select>
</p>
<p>
<label for="pac">Possibilité de dévider "par à-coup" ?</label><br />
<select name="pac" id="pac">
<option value="non">Non défini</option>
<option value="Oui">Oui</option>
<option value="Non">Non</option>
</optgroup>
</select>
</p>
<p>
<label for="sag">Possibilité de dévider en "stop and go" ?</label><br />
<select name="sag" id="sag">
<option value="non">Non défini</option>
<option value="Oui">Oui</option>
<option value="Non">Non</option>
</optgroup>
</select>
</p>
<p>
<br/><br/><input type="submit" /> <input type="reset" />
</p>
</form>
</div>
</body>
</html>
Je suis certaine qu'il y avait beaucoup plus simple, mais c'est mon premier code html alors j'ai fait au mieux... En tout cas ça semble correspondre à ce que je veux.
C'est la partie qui consiste à le rendre viable qui me pose problème.
J'aimerais qu'en cliquant sur "soumettre la requete", l'utilisateur arrive sur une page où on lui propose les différents systèmes qui correspondent à tous les critères qu'il aura renseigné dans le formulaire.
En espérant pouvoir bénéficier d'une aide précise (en commençant depuis le tout début)...
Merci de vous intéresser à mon problème!
Marsh Posté le 10-03-2010 à 09:58:00
Vaut mieux que tu donnes le code php qui génère ta page web, le code html nous sert à rien. Et c'est pas la peine de commencer à coder quoi que ce soit si t'as pas modélisé ta BD. Si les notions de MCD ou MLD te disent rien, oui, t'es au niveau 0 et il faudra t'y mettre un minium (pas la peine forcément d'apprendre Merise ou ce qu'est la forme 3NF).
Marsh Posté le 10-03-2010 à 10:21:09
Justement, je n'ai pas de code php, c'est bien là le problème ! J'ai codé ma page en html et avec du css. Mais pas de php.
Apparament je n'aurais pas du commencer comme ça... Je crois que je suis mal partie pour aboutir à quelque chose... :-(
Sinon, je n'ai pas non plus le niveau 0, j'ai commencé le cours de BDD avant mon stage mais je sais simplement écrire le MCD et MLD pour un exemple simple, mais dans le cas de mon projet, je n'y arrive pas...
Marsh Posté le 10-03-2010 à 11:30:43
Clair, t'as apparemment tout à refaire
1) analyser les données à gérer et voir les relations entre elles
2) faire le MCD et le faire valider (prendre des ex concrets du plus simple au plus complexe avec des personnes qui sont dans la boîte depuis longtemps et ont de l'expérience)
3) implémenter dans un SGBD (si t'es en php, Mysql est un bon choix) ton MCD
4) définir la logique métier (les process = enchaînement de tâches/actions) et les faire valider
5) définir la charte graphique et la faire valider
6) implémenter les process en PHP/XHTML/CSS et faire tester régulièrement par un ou plusieurs futurs utilisateurs
7) rajouter du javascript non intrusif pour améliorer l'ergonomie de l'IHM
Tout au long de ce travail, rédiger les docs (Dossier de spécs, dossier de conception, MUT, manuel d'exploitation, dossier de tests...).
Marsh Posté le 18-03-2010 à 14:06:41
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 |
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...!
Marsh Posté le 18-03-2010 à 14:41:19
les relations n-n, on y trouve comme clé primaire la "concaténation" des 2 clés étrangères (les id) + éventuellement des champs complémentaires. Je vois donc pas pourquoi tu as le champ "nombre_xxx".
Marsh Posté le 18-03-2010 à 15:15:21
J'étais persuadée qu'il fallait ajouter également un attribut supplémentaire faisant le lien entre les deux, autant pour moi!
Et quant au reste, qu'en penses-tu ? J'ai eu raison de créer ces 3 tables ou est-ce que j'aurais pu créer une seule table "système" ?
Et saurais-tu répondre à mes questions concernant le passage du MLD à la création des tables sur phpmyadmin (syntaxe, création des deux nouvelles tables...)
Merci! :-)
Marsh Posté le 18-03-2010 à 16:03:45
Ben le lien, c'est justement avec les clés étrangères. Si tu donnes l'id de la machine, tu vas trouver dans la table "Convient" tous les id d'applications associés à la machine.
Pour rappel, dans une structure de BD, il faut éviter la duplication d'une même info. Si on la trouve dans plusieurs tables, c'est quelle doit très probablement faire elle-même l'objet d'une table à part entière (ex avec l'application ou le conditionnement). S'il y a des relations n-n, là aussi, faut une table par relation.
Pour phpmyadmin, faut tout créer à la mano. Pour la clé primaire sur 2 champs, tu vas dans l'onglet "structure" de la table et dans la partie (vers le bas) "index", tu mets 2 dans le champ "Créer une clef sur" puis cliquer sur exécuter. Là, tu sélectionnes les 2 champs. La clé primaire s'appelle alors forcément PRIMARY. L'autre solution (c'est ce que je fais pas je suis pas sûr que ça soit top), c'est de créer une clé primaire "bidon" en auto_incrémenté et déclarer un index sur chaque clé étrangère.
Si t'es en myisam (le plus probable), la notion de clé étrangère n'existe pas, pas plus que les relations entre les tables. Moi, les clés étrangères, je les mets à la fin de la table avec un index (si c'est pertinent) et je les nomme de la même manière que dans la table où elles sont définies comme clé primaire.
Marsh Posté le 22-03-2010 à 08:43:18
Bonjour,
Ma dernière semaine de stage étant déjà entamée, je sollicite à nouveau l'aide de toute personne qui voudra bien m'en apporter... Dans l'idéal, il faudrait que j'aie terminé la programmation de l'outil de recherche demain soir...
Rappel :
J'ai créé ma base de données, que j'ai appelé "systemes_devidage", dans laquelle j'ai créé 3 tables : "systeme", "conditionnement", "application" ainsi que 2 tables provenant de mes deux cardinalités "n vers n" : "convient" et "nécessite".
Le MLD ressemble à ça :
Machine (Id, Nom)
Application (Id, Nom)
Système (Id, Nom, Vitesse, Type, SensRotation)
Convient (id_application, id_conditionnement)
Nécessite (id_conditionnement, id_système)
Je souhaiterais relier ma base de donnée à un formulaire de recherche, de sorte que suivant les critères renseignés dans le formulaire (menus déroulants), l'utilisateur trouve les systèmes correspondant à son besoin.
Etant étudiante en école d'ingénieur, j'ai également sollicité l'aide d'un de mes professeur (de base de données), qui m'a répondu cela :
Vous devez joindre les tables :
1. Listez les tables requises dans la clause FROM
2. Indiquez les critères de jointure dans la clause WHERE
au lieu de faire
SELECT nom
FROM systeme
WHERE ...
faites
SELECT nom
FROM systeme, necessite, conditionnement, convient, application
WHERE systeme.id = necessite.id_systeme
AND necessite.id_conditionnement = conditionnement.id
AND conditionnement.id = convient.id_conditionnement
AND application.id = convient.id_application
AND ...
Ensuite, il reste à revoir les critères "conditionnement" et
"application". Je vous conseille de faire des selecteurs HTML, que vous
générerez à l'aide d'un simple "select id, nom from conditionnement" :
<select name="id_conditionnement">
<option value="1">Nom du conditionnement 1</option>
<option value="2">Nom du conditionnement 2</option>
<option value="3">Nom du conditionnement 3</option>
...
</select>
Vous aurez alors $_POST['id_conditionnement'] au lieu de
$_POST['conditionnement']
Même chose pour "application".
Du coup vous n'aurez plus besoin des tables "conditionnement" et
"application" dans la requete de recherche :
SELECT nom
FROM systeme, necessite, convient
WHERE systeme.id = necessite.id_systeme
AND necessite.id_conditionnement = convient.id_conditionnement
AND necessite.id_systeme = $_POST['id_systeme']
AND convient.id_conditionnement = $_POST['id_conditionnement']
AND ...
Mais j'avoue ne pas comprendre grand chose...
A quoi cela sert-il concrètement d'utiliser des sélecteurs html? Et où dois-je les écrire, dans la page html du formulaire ou dans la page php? Parmis tout ça, qu'est-ce que je dois écrire, concrètement?
Merci de bien vouloir m'aider à déchiffrer tout ça...et me donner votre avis, peut-être y a-t-il plus simple...?
Merci d'avance!
Marsh Posté le 22-03-2010 à 10:09:50
Pourtant, ton prof a été sympa car il t'a presque tout mâché le boulot. Juste un reproche pour les équi-jointures que lui fait dans le WHERE alors que c'est mieux d'utiliser INNER JOIN dans la clause FROM.
Les champs dans l'IHM du moteur de recherche prennent "la forme" de leur modélisation dans la BD :
- un champ texte libre dans une table de la BD va généralement se traduire par un input type text dans l'IHM. Un champ dont les valeurs proviendraient d'une liste de valeurs finies (un enum ou une clé étrangère pointant sur une table) va se traduire plutôt par une liste déroulante. Des champs de type oui/non par des boutons radio.
Ex :
tu recherches sur le nom d'un client -> champ texte
tu recherches sur le type de conditionnement d'une machine -> liste déroulante
Pour la construction de la requête SQL, tu peux regarder le code source de mon appli Astres (cf ma signature) : y'a plusieurs ex de moteurs de recherche, du plus simple (recherche d'appels constructeurs) au plus compliqué (recherche de demandes de travaux).
Maintenant, tu dis que t'es en école d'ingé : école d'informatique? Et en quelle année? Parce que ça me fait un peu peur que tu sois pas capable de 'en sortir avec ce que t'as dit ton prof
Marsh Posté le 22-03-2010 à 12:01:54
rufo a écrit : Maintenant, tu dis que t'es en école d'ingé : école d'informatique? Et en quelle année? Parce que ça me fait un peu peur que tu sois pas capable de 'en sortir avec ce que t'as dit ton prof |
Non, heureusement pour moi, je suis dans le domaine de la conception mécanique (première année)...^^
On a fait très peu d'info jusqu'à présent, juste la base en langage C et la base en BDD...voilà aussi pourquoi mon prof m'a autant mâché le travail!
La majeur partie de mon stage est dans la mécanique, mais j'ai ce petit outil qui nécessite des connaîssances en informatique que je n'ai pas (j'ai appris exprès pour ça le langage html et les base du php...d'où mes déboires actuelles...
Merci pour tes infos complémentaire, je vais voir ce que je peux faire...
Marsh Posté le 23-03-2010 à 10:29:24
Si j'ai bien compris :
- J'ai modifié la page de code de mon formulaire initial comme cela :
Citation : <p> |
</p>
- J'ai tenté d'écrire ma page de code pour le traitement du formulaire :
Citation : <?php |
- J'ai testé en choisissant des critères dans les menus déroulants puis j'ai cliqué sur "rechercher" afin de voir si -par miracle- le code fonctionnait, et voilà le message d'erreur :
Citation : object(PDOStatement)#2 (1) { ["queryString"]=> string(315) "SELECT nom FROM systeme, necessite, convient WHERE systeme.id = necessite.id_systeme AND necessite.id_conditionnement = convient.id_conditionnement AND convient.id_conditionnement ="non" AND convient.id_application ="non" AND type="non" AND vitesse="non" AND sens="0" AND pac="0" AND sag="0" " } |
Si je l'ai bien compris, ça semble normal puisque dans mon formulaire, j'ai ajouté la possibilité de laisser un champ "Non défini", que j'ai appelé "non".
Voilà ma question : comment prendre en compte le fait que l'utilisateur ne soit pas obligé de sélectionner un critère pour chaque champ ? (la valeur initiale de chaque champ est "Non défini" ).
Merci d'avance...
Marsh Posté le 23-03-2010 à 10:35:02
Regardes le fichier /Astres/AowFollow/SearchConstructorCall.php de mon appli Astres. T'as toutes les réponses. En gros, faut juste faire un test si le champ est vide ou, pour une liste déroulante, que la valeur est 0 (ou vide).
ps : j'espère que le contenu de tes listes déroulantes est généré automatiquement via une boucle php qui prend les valeurs dans les tables de ta BD? T'as pas fait du code html statique, rassures-moi?
Marsh Posté le 23-03-2010 à 10:45:59
rufo a écrit : ps : j'espère que le contenu de tes listes déroulantes est généré automatiquement via une boucle php qui prend les valeurs dans les tables de ta BD? T'as pas fait du code html statique, rassures-moi? |
J'ai bien peur que si... Le truc c'est que j'ai appris avec le site du zero et que dans un premier temps, on apprenait à faire un formulaire en html/css, puis à le rendre utilisable via le php... Du coup dans la première partie, j'avais déjà réalisé mon formulaire, sans php.
Mais si ce n'est que c'est beaucoup plus long et répétitif, au final ça ne change rien, si? Surtout que ça ne m'arrange pas trop d'avoir à le refaire, vu comme je galère en php...
Je vais essayer de jeter un oeil au fichier dont tu me parles, en espérant que j'arrive à le téléchager parce que je n'ai pas accès a beaucoup de chose sur le PC de l'entreprise et mes droits sont très limités... -_-'
Marsh Posté le 23-03-2010 à 12:13:35
Ben le pb c'est que si tu fais un formulaire de recherche dont les critères ne prennent pas en compte ce qu'il y a dans le bd, c'est pas la peine, c'est naze et pas utilisable pour l'entreprise
Et vu ton niveau en php, laisse tomber mon appli, tu vas pas y comprendre grand chose...
Pour rappel, avant de se lancer dans toute activité, on vérifie que :
1) on a les compétences
2) on a les outils.
Pour le 1), on peut les acquérir, faut vérifier par contre qu'on a le temps pour le faire et s'assurer que c'est à sa portée. Manifestement, tu n'a pas pris soin de vérifier ce point et j'ai l'impression que tu n'en as plus le temps. Là, tu t'es lancée dans un dév mettant en jeu une BD, du html et du PHP et tu n'as pas les bases pour les 3 C'est le genre de technos qui nécessitent pour les bases plusieurs semaines (surtout quand on vient pas d'une école d'info) et pour bien maîtriser, plusieurs années
Marsh Posté le 03-03-2010 à 08:48:51
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! :-)