Liste d'utilisateurs en php, passage de la valeur dans la base
Torkoan
Messages postés2Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention16 juin 2009
-
16 juin 2009 à 10:29
Torkoan
Messages postés2Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention16 juin 2009
-
16 juin 2009 à 17:28
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"
<?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">
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 !
'.$sqlnbusers.'
'.mysql_error());
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.'
'.mysql_error());
// on ferme la connexion
mysql_close();
}
?>
<html>
<head></head>
Enregistrement effectué pour l'utilisateur : <?php echo $utilisateur; ?>
[test.php Retour]
</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...
A voir également:
Liste d'utilisateurs en php, passage de la valeur dans la base
Torkoan
Messages postés2Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention16 juin 2009 16 juin 2009 à 17:28
Après plusieurs heures d'arrachage de cheveux, et une bonne pause clope, j'ai trouvé mon erreu, et j'ai ainsi résolu le problème. Voici l'extrait de code en rouge corrigé et légèrement modifié (il y avait des erreurs d'inatention ) :
<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 !
'.$sqlnbusers.'
'.mysql_error());