Bonjour à tous,
Après avoir consulté de nombreux tutos et messages sur divers forums (et n'ayant pas trouvé mon bonheur), je me permet de faire appel à votre aide.
J'ai réalisé un formulaire qui s'appuie sur deux tables de ma base : une table regroupant les utilisateurs (table jos_users), et une table regroupant des prestations (table jos_prestations).
Ce formulaire a pour but d'enregistrer un nouvelle prestation, il affiche une liste déroulante permettant de sélectionner un utilisateur présent dans la table users, et divers champs concernant la prestation.
Voici mon code :
Fichier test.php
<?php
connectMaBase();
//Affichage du nombre d'utilisateurs présents dans ma table "utilisateurs"
$sqlnbusers = 'SELECT * FROM jos_users';
$nb_users = mysql_query($sqlnbusers) or die('Erreur SQL !<br />'.$sqlnbusers.'<br />'.mysql_error());
$nbusers = mysql_num_rows($nb_users);
echo 'Nombre d\'utilisateurs : '.$nbusers."\n";?>
<br />
<br />
<?php //Création du formulaire permettant de remplir la table "Prestations" ?>
<fieldset id="New">
<legend>Nouvelle prestation à enregistrer</legend>
<form name="prestation" method="post" action="traitement.php">
<p>Utilisateur :
<select name="utilisateur">
<option>Choisir un utilisateur...</option>
<?php
//Code permettant de récupérer les noms d'utilisateurs présents dans la table "utilisateurs" afin de les placer dans la liste
$sqlaffichusers = "SELECT name FROM jos_users ORDER BY `name` ASC";
$affichusers = mysql_query($sqlaffichusers) or die('Erreur SQL !<br />'.$sqlnbusers.'<br />'.mysql_error());
for($i=0;$i<=$nbusers;$i++){
while ($resultat = mysql_fetch_array($affichusers)) { ?>
<option value="<?php $resultat[$i] ?>"> <?php echo $resultat[$i];}} ?>
</option>
</select>
</p>
<p>
Nombre d'heures : <input type="text" name="heures" value="hh" style="width:40px;" maxlength="2" /> h.<br />
Nombre de minutes : <input type="text" name="minutes" value="mm" style="width:40px;" maxlength="2" /> min.<br />
Montant de la prestation : <input type="text" name="montant" /> ¤.<br />
Date de la prestation : <input type="text" name="année" value="AAAA" maxlength="4" style="width:40px;" /> - <input type="text" name="mois" value="MM" maxlength="2" style="width:20px;" /> - <input type="text" name="jour" value="JJ" maxlength="2" style="width:20px;" />.<br />
<br />
Commentaire : <br /><textarea id="commentaire" name="commentaire" rows="7" cols="30">Ajoutez un commentaire ici...</textarea>
<br />
<input type="submit" name="valider" value="Valider"/>
</p>
</form></fieldset>
<?php
// on ferme la connexion
mysql_close();
?>
Fichier traitement.php
<?php
function connectMaBase(){
$base = mysql_connect ('localhost', 'root', 'mysql');
mysql_select_db ('domiclic', $base) ;
}
connectMaBase();
if (isset ($_POST['valider'])){
//On récupère les valeurs entrées par l'utilisateur :
$utilisateur=$_POST['utilisateur'];
$nbheures=$_POST['heures'];
$nbmin=$_POST['minutes'];
$montant=$_POST['montant'];
$date=$_POST['année'].'-'.$_POST['mois'].'-'.$_POST['jour'];
$commentaire=$_POST['commentaire'];
//On prépare la commande sql d'insertion
$sql = 'INSERT INTO jos_prestations (utilisateur, nb_heure, nb_minute, montant_prestation, date_prestation, commentaire) VALUES("'.$utilisateur.'","'.$nbheures.'","'.$nbmin.'","'.$montant.'","'.$date.'","'.$commentaire.'")';
//on lance la commande (mysql_query)
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion
mysql_close();
}
?>
<html>
<head></head>
<body>
Enregistrement effectué pour l'utilisateur : <?php echo $utilisateur; ?>
<br /><a href="test.php">Retour</a>
</body>
</html>
Donc, tout marche bien, ou presque... l'enregistrement est bien recensé dans ma table prestation lorsque j'envoi les données du formulaire, mais le champ concernant l'utilisateur n'est jamais rempli, le problème vient donc de là.
Vous pouvez d'ailleurs voir dans le fichier traitement.php, que je choisit d'afficher pour quel utilisateur l'enregistrement a été effectué, et aucun nom d'utilisateur n'apparait sur la page.
J'imagine qu'il y a un souci avec le code (ici en rouge) qui m'a permis de générer la liste déroulante reprenant les différents utilisateurs de ma table users
...
Je débute un peu en php donc si quelqu'un arrive à comprendre mon problème et à me guider dans la résolution de celui-ci, je l'en remercie.
En espérent avoir été clair dans mon explication...