Appel d'une requête sql depuis une page html

Fermé
inzemix - 15 juil. 2010 à 09:57
will5555 Messages postés 332 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 20 août 2013 - 20 juil. 2010 à 13:40
Bonjour,

Je débute dans ce que je cherche à faire.

J'ai créé un formulaire dans lequel un utilisateur peut saisir quelques paramètres (matricule, type d'absence, année).
Je cherche, à partir du clic sur le bouton de validation, à lancer une requête sql à partir de ces paramètres (dans une table sql serveur) de type "select datedebut, datefin, nbjours from tabledesabsences where mat= matricule and typabs= typedabsence and year(datdeb)= annee"

Je souhaite afficher d'une façon simple le résultat de la requête sur une page (la même ou une autre).

Mon problème c'est que je ne sais pas comment écrire le fait que je vais lancer cette requête (j'imagine que je dois donner le nom du serveur, de la base de données table), ni comment affecter les résultats à ma page. Je ne trouve pas de modèle simple me permettant de transposer mon besoin.

Merci d'avance.

2 réponses

will5555 Messages postés 332 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 20 août 2013 45
15 juil. 2010 à 10:03
Il faut créer un formulaire en html ensuite à la validation le résultat devra etre envoyé a une page .php, et la avec du code php il est possible de rentrer les informations dans la base de données.

Voici un lien qui vous aidera à comprendre tout cela https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql

Cependant si vous me fournissez le code du fichier html à disposition je me ferait un plaisir de vous faire le fichier php
0
Merci, will5555, je vais étudier ce site.

Voici le code du fichier html:


<script src="http://www.jotform.com/min/g=jotform&" type="text/javascript"></script>
<script type="text/javascript">

JotForm.init(function(){
JotForm.description('input_3', 'Saisir le matricule recherché');
});
</script>
<link type="text/css" rel="stylesheet" href="https://www.jotform.com/css/styles/form.css?v3"/>
<link href="https://www.jotform.com/css/calendarview.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.form-label{
width:150px !important;
}
.form-label-left{
width:150px !important;
}
.form-line{
padding:10px;
}
.form-label-right{
width:150px !important;
}
.form-all{
width:650px;
color:#A52A2A !important;
font-family:Verdana;
font-size:12px;
}
</style>

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
<meta name="HandheldFriendly" content="true" /><form class="jotform-form" action="https://www.jotform.com/submit.php" method="post" name="form_1945958129" id="1945958129" accept-charset="utf-8">
<input type="hidden" name="formID" value="1945958129" />
<div class="form-all">
<ul class="form-section">
<li id="id_1" class="form-input-wide">
<div class="form-header-group">
<h2 id="header_1" class="form-header">
Recherche d'absences pour un collaborateur
</h2>
</div>
</li>
<li class="form-line" id="id_3">
<label class="form-label-left" id="label_3" for="input_3"> Matricule </label>
<div id="id_3" class="form-input">
<input type="text" class="form-textbox validate[Alphanumérique]" id="input_3" name="q3_matricule3" size="10" maxlength="10" />
</div>
</li>
<li class="form-line" id="id_8">
<label class="form-label-left" id="label_8" for="input_8"> Société </label>
<div id="id_8" class="form-input">
<select class="form-dropdown" style="width:150px" id="input_8" name="q8_societe">
<option> </option>
<option selected="selected" value="001"> 001 </option>
<option value="002"> 002 </option>
</select>
</div>
</li>
<li class="form-line" id="id_5">
<label class="form-label-left" id="label_5" for="input_5"> Année </label>
<div id="id_5" class="form-input">
<select class="form-dropdown" style="width:150px" id="input_5" name="q5_annee5">
<option> </option>
<option selected="selected" value="2010 "> 2010 </option>
<option value="2011 "> 2011 </option>
<option value="2012 "> 2012 </option>
<option value="2013 "> 2013 </option>
<option value="2014 "> 2014 </option>
<option value="2015 "> 2015 </option>
<option value="2016 "> 2016 </option>
<option value="2017 "> 2017 </option>
<option value="2018 "> 2018 </option>
<option value="2019 "> 2019 </option>
<option value="2020"> 2020 </option>
</select>
</div>
</li>
<li class="form-line" id="id_4">
<label class="form-label-left" id="label_4" for="input_4"> Type d'absence </label>
<div id="id_4" class="form-input">
<select class="form-dropdown" style="width:150px" id="input_4" name="q4_typeDabsence">
<option> </option>
<option value="CP"> CP </option>
<option value="RTT"> RTT </option>
<option value="CSANC"> CSANC </option>
<option value=" "> </option>
</select>
</div>
</li>
<li class="form-line" id="id_7">
<div id="id_7" class="form-input-wide">
<div style="margin-left:156px" class="form-buttons-wrapper">
<button id="input_7" type="submit" class="form-submit-button">
Afficher les absences
</button>
</div>
</div>
</li>
<li style="display:none">
Should be Empty:
<input type="text" name="website" value="" />
</li>
</ul>
</div>
<input type="hidden" id="simple_spc" name="simple_spc" value="1945958129" />
<script type="text/javascript">
document.getElementById("si" + "mple" + "_spc").value = "1945958129-1945958129";
</script>
</form>
0
will5555 Messages postés 332 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 20 août 2013 45
15 juil. 2010 à 10:50
Voici le code pour enregistrer les informations dans la base de données

Le code est commenté et ne gène en aucun cas son exécution.

Des informations me manquait donc il y a quelques peties choses à changer

Notamment sur cette ligne $req = $bdd->prepare('INSERT INTO Nom_De_La_Table(champ1, champ2, champ3 ) VALUES(:champ1, :champ2, :champ3)'); ou le Nom_De_La_Table doit etre remplacer ainsi que les champ1, champs2 etc


<?php

/*ci dessous nous avons les informations récupérer grace au formulaire, la fonction strip_tags permet d'éviter le piratage */

$formID = strip_tags($_POST['formID']);
$matricule = strip_tags($_POST['q3_matricule3']); /* $matricule correspond à la valeur de la case matricule */
$societe = strip_tags($_POST['q8_societe']);
$annee = strip_tags($_POST['q5_annee5']);
$typeDAbscence = strip tags($_POST['q4_typeDabsence']);


// ci dessous on se connecte à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', 'password');
/* il faut remplacer localhost par l'adresse de la base de données, test par le nom de base de données,
root par le nom d'utilisateur donnant accès à la base de données et ensuite password par le mot de passe de l'utilisateur de la base de données
*/
}
catch (Exception $e) // cette partie permet de sécuriser le code en cas d'erreur
{
die('Erreur : ' . $e->getMessage());
}

$req = $bdd->prepare('INSERT INTO Nom_De_La_Table(champ1, champ2, champ3 ) VALUES(:champ1, :champ2, :champ3)');
$req->execute(array(
'champ1' => $InfoARecuperer, /*il faut mettre l'une des variables qui est associé au premier champ afin de la mettre dans la base de donnée*/
'champ2' => ,
'champ3' => // il ne faut surtout pas mettre de virgule pour le dernier champ
));


$req->closeCursor();

?>
0
Merci mille fois, cela m'aide beaucoup, mais il me reste un point: je ne cherche pas à faire une mise à jour, mais à afficher le résultat de la requête.

Je pensais donc faire :
select datedebut, datefin, nbjours from dbo.tabledesabsences where mat= $matricule and soc=$societe and typabs= $typeDAbscence and year(datdeb)= $annee

Comment puis-je alors afficher le résultat sur la page de l'utilisateur ?
0
will5555 Messages postés 332 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 20 août 2013 45
15 juil. 2010 à 15:19
Voici le code, théoriquement il doit bien fonctionner.


<?php

$formID = strip_tags($_POST['formID']);
$matricule = strip_tags($_POST['q3_matricule3']); // $matricule correspond à la valeur de la case matricule
$societe = strip_tags($_POST['q8_societe']);
$annee = strip_tags($_POST['q5_annee5']);
$typeDAbscence = strip tags($_POST['q4_typeDabsence']);


try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', 'password');
/* il faut remplacer localhost par l'adresse de la base de données, test par le nom de base de données,
root par le nom d'utilisateur donnant accès à la base de données et ensuite password par le mot de passe de l'utilisateur de la base de données */

}
catch (Exception $e) // cette partie permet de sécuriser le code en cas d'erreur
{
die('Erreur : ' . $e->getMessage());
}


$req = $bdd->prepare('SELECT datedebut, datefin, nbjours FROM dbo.tabledesabsences WHERE mat= ? AND soc= ? AND typabs= ? AND year(datdeb)= ? ');
$req->execute(array($matricule, $societe, $typeDAbscence, $annee));

while ($donnees = $req->fetch())
{
echo '' . donnees['datedebut'] . donnees['datefin'] . donnees['nbjours'] . '';
}


$req->closeCursor();



?>
0
Merci beaucoup, j'ai essayé (avec mes modestes moyens) et je ne parviens pas à exécuter la requête. Il y a deux choses qui peuvent m'embêter:

1. je ne suis pas sûr du tout d'avoir inséré le code php au bon endroit dans mon code html, du coup quand je clique sur le bouton de soumission "afficher les absences", je soumets la forme de ma page au site jotform.com sur lequel j'ai créé ma page html, mais je ne lance pas la requête sql. Cette requête s'exécute sans problème si je la tape dans studio manager (sql 2005).

2. la syntaxe de la ligne permettant de gérer la connexion permet-elle de se connecter à un serveur sql microsoft ?

je tatônne, désolé.

Voici le code actuel, merci pour tout.



<link type="text/css" rel="stylesheet" href="https://www.jotform.com/css/styles/form.css?v3"/>
<link href="https://www.jotform.com/css/calendarview.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.form-label{
width:150px !important;
}
.form-label-left{
width:150px !important;
}
.form-line{
padding:10px;
}
.form-label-right{
width:150px !important;
}
.form-all{
width:650px;
color:#A52A2A !important;
font-family:Verdana;
font-size:12px;
}
</style>

/*<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
<meta name="HandheldFriendly" content="true" /><form class="jotform-form" action="https://www.jotform.com/submit.php" method="post" name="form_1945958129" id="1945958129" accept-charset="utf-8">
<input type="hidden" name="formID" value="1945958129" />*/
<div class="form-all">
<ul class="form-section">
<li id="id_1" class="form-input-wide">
<div class="form-header-group">
<h2 id="header_1" class="form-header">
Recherche d'absences pour un collaborateur
</h2>
</div>
</li>
<li class="form-line" id="id_3">
<label class="form-label-left" id="label_3" for="input_3"> Matricule </label>
<div id="id_3" class="form-input">
<input type="text" class="form-textbox validate[Alphanumérique]" id="input_3" name="q3_matricule3" size="10" maxlength="10" />
</div>
</li>
<li class="form-line" id="id_8">
<label class="form-label-left" id="label_8" for="input_8"> Société </label>
<div id="id_8" class="form-input">
<select class="form-dropdown" style="width:150px" id="input_8" name="q8_societe">
<option> </option>
<option selected="selected" value="001"> 001 </option>
<option value="002"> 002 </option>
</select>
</div>
</li>
<li class="form-line" id="id_5">
<label class="form-label-left" id="label_5" for="input_5"> Année </label>
<div id="id_5" class="form-input">
<select class="form-dropdown" style="width:150px" id="input_5" name="q5_annee5">
<option> </option>
<option selected="selected" value="2010 "> 2010 </option>
<option value="2011 "> 2011 </option>
<option value="2012 "> 2012 </option>
<option value="2013 "> 2013 </option>
<option value="2014 "> 2014 </option>
<option value="2015 "> 2015 </option>
<option value="2016 "> 2016 </option>
<option value="2017 "> 2017 </option>
<option value="2018 "> 2018 </option>
<option value="2019 "> 2019 </option>
<option value="2020"> 2020 </option>
</select>
</div>
</li>
<li class="form-line" id="id_4">
<label class="form-label-left" id="label_4" for="input_4"> Type d'absence </label>
<div id="id_4" class="form-input">
<select class="form-dropdown" style="width:150px" id="input_4" name="q4_typeDabsence">
<option> </option>
<option value="CP"> CP </option>
<option value="RTT"> RTT </option>
<option value="CSANC"> CSANC </option>
<option value=" "> </option>
</select>
</div>
</li>
<li class="form-line" id="id_7">
<div id="id_7" class="form-input-wide">
<div style="margin-left:156px" class="form-buttons-wrapper">
<button id="input_7" type="submit" class="form-submit-button">
Afficher les absences
</button>



</div>
</div>

</li>
<li style="display:none">
Should be Empty:
<input type="text" name="website" value="" />
</li>
</ul>
</div>
<input type="hidden" id="simple_spc" name="simple_spc" value="1945958129" />

</form>
0
will5555 Messages postés 332 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 20 août 2013 45
15 juil. 2010 à 16:27
La page actuelle où se trouve tous le code comment s'appelle-t-elle?
0
absparmat.html
0