Liste d'utilisateurs en php, passage de la valeur dans la base

Signaler
Messages postés
2
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
16 juin 2009
-
Messages postés
2
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
16 juin 2009
-
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 !
'.$sqlnbusers.'
'.mysql_error());
$nbusers = mysql_num_rows($nb_users);
echo 'Nombre d\'utilisateurs : '.$nbusers."\n";?>




<?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());



for($i=0;$i<=$nbusers;$i++){
while ($resultat = mysql_fetch_array($affichusers)) { ?>
<option value="<?php $resultat[$i] ?>"> <?php echo $resultat[$i];}} ?>
</option>
</select>

Nombre d'heures : h.

Nombre de minutes : min.

Montant de la prestation : €.

Date de la prestation : - - .

Commentaire :
<textarea id="commentaire" name="commentaire" rows="7" cols="30">Ajoutez un commentaire ici...</textarea>

 

</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.'
'.mysql_error());
                           
            // on ferme la connexion
            mysql_close();
        }
?>
<html>
<head></head>

Enregistrement effectu&eacute; 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...

1 réponse

Messages postés
2
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
16 juin 2009

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());

for($i=0;$i<=$nbusers;$i++){
while ($resultat = mysql_fetch_array($affichusers)) { ?>
<option value="<?php echo $resultat[$i]; ?>"> <?php echo $resultat[$i];?> </option> <?php }} ?>
</select>

Désolé pour ce post qui n'aura donc pas servi à grand chose, mais qui aidera peut être d'autres personnes ayant commis ce genre d'inatention