begin process at 2012 05 30 15:33:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

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


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

mardi 16 juin 2009 à 10:29:35 | Liste d'utilisateurs en php, passage de la valeur dans la base

Torkoan

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

mardi 16 juin 2009 à 17:28:37 | Re : Liste d'utilisateurs en php, passage de la valeur dans la base

Torkoan

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 !<br />'.$sqlnbusers.'<br />'.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



Cette discussion est classée dans : table, mysql, utilisateurs, utilisateur, post


Répondre à ce message

Sujets en rapport avec ce message

:: PB MYSQL_FETCH_ROW :: [ par nougitch ] Bonjour à tous,Plutôt débutant en PHP, je vous explique.J'ai créé un espace membre avec une table "x2000_utilisateur".Ce qui me gêne c'est que quand q updater plusieurs lignes en meme temps [ par plasticode ] here i come again.voilà je mets en place une page modif.php qui fait appel àune base de données mysql avec plusieurs tables liées.Mes mises a jour fon PHP : Suppr enregistrement BDD avec confirmation par boite de dialogue ? [ par Waynejunior ] Bonjour, je cherche un moyen d'afficher une boite de dialogue quand l'utilisateur clique sur le bouton supprimer (un ou plusieurs enregistrements de m Probleme de recherche [ par chris tuckers ] Re tout le monde !!La aujourd'hui j'ai un probleme de recherche de champs, il faut que l'utilisateur tape ce qu'il veut : nom ou poste, et s'affiche l test si existe dans base de donnée [ par gabs77 ] bonjour, je fais un formulaire avec page récapitulatif et je veux faire des tests d'existence dans la base de donnée pour mon intranetcad dans mon for $_POST[mon_champ] et boucle [ par DocR2 ] Bonjour,J'ai un formulaire qui s'affiche suite à une requête mysql : mes deux champs de formulaire sont donc répétés tant que des données existent dan foreach $_POST INSERT MYSQL [ par Annadrill ] bonjour,bon j'ai un souci,j'ai un formulaire envoyé en post a une page php,ce que je cherche a faire c'est que n'importe quel formulaire puisse etre e probleme d'insertion avec ma requette [ par cyrilherve ] bonjour,voici un bout de code qui me permet d'enregistrer un utilisateur dans ma table 'UTILISATEURS' à partire du fichier 'enregistreruser.php'[CODE] Problème avec mon code php [ par pierrehs ] Bonjour, Je suis en train de créer un installateur automatique pour cakephp Mais j'ai une erreur. Pouvez-vous m'aidez Voici le code d'installation [ Connexion d'un administrateur ou d'un utilisateur en php mysql [ par marysd ] j ai toujours cette message d'erreur 'Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,621 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales