IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Modifier un formulaire sans passer par phpMyAdmin [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 42
    Points : 16
    Points
    16
    Par défaut Modifier un formulaire sans passer par phpMyAdmin
    Salut a tous,

    je doit crée un formulaire en local, et les information entré doit être enregistré dans une base de donnée, jusqu'ici tout va bien j'ai réussi.(au passage merci de m'avoir aider a ce sujet)

    Ma 2nd partie et qu'une voit que je clique sur le bouton valider en plus que les information s'enregistre dans une base de donnée cela doit me l'afficher a l'écran[ça c'est fait] dans un tableau avec un bouton modifier pour que je puisse modifier des informations si cela a changé. C'est cette seconde partie qui me pause problème. Je vous mets les codes

    formulaire.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <html>
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Formulaire Client</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
    </head>
     
    <body>
    <form method="post" action="traitement.php">
    <p class="titre">Coordonné Client</p>
    <fieldset id="coordonnees">
    <p id="civilite"><label>Civilité : </label>
     
    <input type="radio" name="civilite" value="Mme" />Mme
    <input type="radio" name="civilite" value="Mr" />Mr
    </p>
     
    <label>Nom : </label>
    <input type="text" name="nom" size="30" /><br />
     
    <label>Prénom : </label>
    <input type="text" name="prenom" size="30" /><br />
     
    <p id="role"><label>Rôle: </label>
    <input type="checkbox" name="role" value="Independant" />Indépendant
    <input type="checkbox" name="role" value="Interne" />Interne<br />
    </p>
     
    <label>Début du Contrat: </label>
    <input type="text" name="debutcontrat" size="30"/><br />
     
    <label>Société Client : </label>
    <input type="text" name="societeclient" size="30" /><br />
     
    <label>Jours Travaillés : </label>
    <input type="text" name="jourstravailles" size="30" /><br />
     
    <label>Jours de Congés : </label>
    <input type="text" name="joursconges" size="30" /><br />
     
    <label>RTT : </label>
    <input type="text" name="rtt" size="30" /><br />
     
    <label>Dernière Entrevue: </label>
    <input type="text" name="dernierentrevue" size="30" /><br />
     
    <label>Salaire : </label>
    <input type="text" name="salaire" size="30" /><br />
     
    <label>Status: </label>
    <select name="status">
    <option value="Consultant">Consultant</option>
     
     
    </select>
    </fieldset>
     
    <p class="titre">Commentaire</p>
    <fieldset id="message">
    <textarea name="message" rows="5" cols="40"></textarea>
    </fieldset>
     
    <p id="bouton">
    <input type="submit" value="Valider" />
    </p>
     
    </form>
    </body>
    </html>
    traitement.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
     
    <?php
     
    define('DB_SERVER', 'localhost'); // serveur mysql
    define('DB_SERVER_USERNAME', 'root'); // nom d utilisateur
    define('DB_SERVER_PASSWORD', ''); // mot de passe
    define('DB_DATABASE', 'stage'); // nom de la base
     
    // Connexion au serveur mysql
    $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
    DB_SERVER_PASSWORD)
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db(DB_DATABASE, $connect);
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
    $msg_ok = "Cela a bien &eacutet&eacute prise en compte.";
    $message = $msg_erreur;
    if (empty($_POST['civilite']))
    $message .= "Votre civilit&eacute<br/>";
    if (empty($_POST['nom']))
    $message .= "Votre nom<br/>";
    if (empty($_POST['debutcontrat']))
    $message .= "La date du d&eacutebut de contrat<br/>";
     
    if (strlen($message) > strlen($msg_erreur)) {
    echo $message;
    }
    else {
    foreach($_POST as $index => $valeur) {
    $$index = mysql_real_escape_string(trim($valeur));
    }
     
    $sql = "INSERT INTO formulaire(civilite, nom, prenom, role, debutcontrat, societeclient, jourstravailles, joursconges, rtt, dernierentrevue, salaire, status, message)
    VALUES ('$civilite','$nom','$prenom','$role','$debutcontrat','$societeclient','$jourstravailles','$joursconges','$rtt','$dernierentrevue','$salaire','$status','$message')";
    $res = mysql_query($sql);
    if ($res) {
    header('Location: sortie.php');
    } else {
    echo mysql_error();
    }
     
    }
    ?>
    et voici sortie.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Test Base de donnée</title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        </head>
        <body>
            <?php   //Connection avec la BDD.
            mysql_connect("localhost", "root", "");
            mysql_select_db("stage");
     
            $reponse = mysql_query("SELECT * FROM formulaire");
            ?>
     
            <table>
                    <tr>
                        <td>civilite</td>
                        <td>nom</td>
                        <td>prenom</td>
                        <td>role</td>
                        <td>debutcontrat</td>
                        <td>societeclient</td>
                        <td>jourstravailles</td>
                        <td>joursconges</td>
                        <td>rtt</td>
                        <td>dernierentrevue</td>
                        <td>salaire</td>
                        <td>status</td>
                        <td>message</td>
                    </tr>
                <?php         //On affiche les lignes du tableau une à une à l'aide d'une boucle
                while($donnees = mysql_fetch_array($reponse))
                {
                ?>
                    <tr>
                        <td><?php echo $donnees['civilite'];?></td>
                        <td><?php echo $donnees['nom'];?></td>
                        <td><?php echo $donnees['prenom'];?></td>
                        <td><?php echo $donnees['role'];?></td>
                        <td><?php echo $donnees['debutcontrat'];?></td>
                        <td><?php echo $donnees['societeclient'];?></td>
                        <td><?php echo $donnees['jourstravailles'];?></td>
                        <td><?php echo $donnees['joursconges'];?></td>
                        <td><?php echo $donnees['rtt'];?></td>
                        <td><?php echo $donnees['dernierentrevue'];?></td>
                        <td><?php echo $donnees['salaire'];?></td>
                        <td><?php echo $donnees['status'];?></td>
                        <td><?php echo $donnees['message'];?></td>
                    </tr>
                <?php
                } //fin de la boucle, le tableau contient toute la BDD
                mysql_close(); //deconnection de mysql
                ?>
            </table>
        </body>
    </html>

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    A partir du moment où vous souhaitez manipulée des inputs (données entrées par l'utilisateur) il vous faut obligatoirement utiliser un formulaire.
    Un formulaire peut effectivement contenir un tableau, mais disons que syntaxiquement parlant c'est pas très bien.

    Quoi qu'il en soit, ne vous amusez pas à refaire le formulaire, vous l'avez déjà fait !

    Perso, je créé toujours mes formulaires dans un fichier séparé afin d'avoir un code le plus clair possible. D'autre part, que soit à l'ajout ou à la modification je donne toujours le même nom à la variable qui contient l'array des données.

    Je ne vais pas réécrire l'entièreté du formulaire mais je vais plutôt donner un petit exemple d'ajout/modification d'un formulaire qui demande le nom & prénom pour illustrer mes propos.

    (Pour la facilité de lecture sur le forum, je vais exceptionnellement mettre tout le code "au même endroit" ^^)

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php
    $form = array();
     
    // Admettons qu'on doit éditer une fiche, URL : ?id=X
    if (!empty($_GET['id'])) {
    	// On effectue la requête qui permet de récupérer l'ID X 
    	// (à modifier selon la façon dont vous effectué vos requêtes. 
    	// Ici j'ai simulé l'utilisation d'une classe $db
    	$form = $db->get_by_id($_GET['id']);
    }
    // Gestion de la soumission du formulaire
    if (!empty($_POST['submit']) {
        // C'est ici qu'on va INSERT ou UPDATE dans la DB
     
    	// S'il y a une erreur, on souhaite quand même afficher ce que l'utilisateur a introduit
    	$form = $_POST;
    }
    ?>
    <form method="post" action="monfichier.php">
    	<div>
    		<label for="last_name">Votre nom</label>
    		<input type="text" name="last_name" id="last_name" value="<?php echo $form['last_name']; ?>" />
    	</div>
    	<div>
    		<label for="first_name">Votre prénom</label>
    		<input type="text" name="first_name" id="first_name" value="<?php echo $form['first_name']; ?>" />
    	</div>
    	<div>
    		<button type="submit" name="action" value="submit">Valider</button>
    	</div>
    </form>

    Et voilà !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    Ah ok, bon j'essaie et je vous tiens au courant. Merci

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Attention, je viens de voir que j'ai fait une erreur dans mon code dans la condition de vérification de soumission du formulaire.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (!empty($_POST['submit']) { // voilà ce que j'ai mis, cette condition sera toujours FALSE
    if ($_POST['action'] && $_POST['action'] == "submit") { // voilà la bonne condition (par rapport à mon formulaire évidemment)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    Voilà ce que j'ai fait moi. Mais ça ne fonctionne pas

    sortie.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Test Base de donnée</title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    		<img src="images/logo.png" alt="Logo Sylog Conseil" id="logo"/>
    		<link href="style.css" rel="stylesheet" type="text/css" />
        </head>
        <body>
    	<table border="1" cellpadding="0" cellspacing="0">
     
            <?php   //Connection avec la BDD.
            mysql_connect("localhost", "root", "");
            mysql_select_db("stage");
     
            $reponse = mysql_query("SELECT * FROM formulaire");
            ?>
     
            <table border=4 cellspacing=2 cellpadding=2>
              <caption align=buttom><h3>
    			<p>Formulaire : Donn&eacutee Clients</p></h3></caption>
     
    			<tr>  <td>Civilit&eacute</td>
                        <td>Nom</td>
                        <td>Pr&eacutenom</td>
                        <td>R&ocircle</td>
                        <td>Date de d&eacutebut du Contrat</td>
                        <td>Soci&eacutet&eacute Client</td>
                        <td>Jours Travailles</td>
                        <td>Jours de Cong&eacutes</td>
                        <td>Jours RTT</td>
                        <td>Date de la Derni&egravere Entrevue</td>
                        <td>Salaire</td>
                        <td>Status</td>
                        <td>Message</td>
     
                    </tr>
     
                <?php         //On affiche les lignes du tableau une à une à l'aide d'une boucle
                while($donnees = mysql_fetch_array($reponse))
                {
                ?>
    			        <tr>
                        <td><?php echo $donnees['civilite'];?></td>
    					<a href="modification.php"></a>
                        <td><?php echo $donnees['nom'];?></td>
    					<a href="modification.php"></a>
                        <td><?php echo $donnees['prenom'];?></td>
    					<a href="modification.php"></a>
                        <td><?php echo $donnees['role'];?></td>
    					<a href="modification.php"></a>
                        <td><?php echo $donnees['debutcontrat'];?></td>
    					<a href="modification.php"></a>
                        <td><?php echo $donnees['societeclient'];?></td>
    					<a href="modification.php"></a>
                        <td><?php echo $donnees['jourstravailles'];?></td>
    					<a href="modification.php"></a>
                        <td><?php echo $donnees['joursconges'];?></td>
    					<a href="modification.php"></a>
                        <td><?php echo $donnees['rtt'];?></td>
    					<a href="modification.php"></a>
                        <td><?php echo $donnees['dernierentrevue'];?></td>
    					<a href="modification.php"></a>
                        <td><?php echo $donnees['salaire'];?></td>
    					<a href="modification.php"></a>
                        <td><?php echo $donnees['status'];?></td>
    					<a href="modification.php"></a>
                        <td><?php echo $donnees['message'];?></td>
    					<a href="modification.php"></a>
                    </tr>
     
                <?php
                } //fin de la boucle, le tableau contient toute la BDD
     
                mysql_close(); //deconnection de mysql
                ?>
    			<p id="bouton2">
    <input type="submit" value="Modifier" />
    </p>
     
            </table>
        </body>
    </html>
    et voici modification.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <html>
     
    <?php
    define('DB_SERVER', 'localhost'); // serveur mysql
    define('DB_SERVER_USERNAME', 'root'); // nom d utilisateur
    define('DB_SERVER_PASSWORD', ''); // mot de passe
    define('DB_DATABASE', 'stage'); // nom de la base
     
    mysql_query("SELECT nom FROM formulaire where id=".$_SESSION.['id']) or exit(mysql_error());
    ?>
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Formulaire Client</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
    </head>
     
    <body>
    <form method="post" action="sortie.php">
    <p class="titre">Coordonn&eacute Client</p>
    <fieldset id="coordonnees">
    <p id="civilite"><label>Civilit&eacute : </label>
     
    <input type="radio" name="civilite" value="Mme" />Mme
    <input type="radio" name="civilite" value="Mr" />Mr
    </p>
     
    <label>Nom : </label>
    <input type="text" name="nom" size="30" /><br />
     
    <label>Pr&eacutenom : </label>
    <input type="text" name="prenom" size="30" /><br />
     
    <p id="role"><label>R&ocircle: </label>
    <input type="checkbox" name="role" value="Independant" />Ind&eacutependant
    <input type="checkbox" name="role" value="Interne" />Interne<br />
    </p>
     
    <label>D&eacutebut du Contrat: </label>
    <input type="text" name="debutcontrat" size="30"/><br />
     
    <label>Soci&eacutet&eacute Client : </label>
    <input type="text" name="societeclient" size="30" /><br />
     
    <label>Jours Travaill&eacutes : </label>
    <input type="text" name="jourstravailles" size="30" /><br />
     
    <label>Jours de Cong&eacutes : </label>
    <input type="text" name="joursconges" size="30" /><br />
     
    <label>RTT : </label>
    <input type="text" name="rtt" size="30" /><br />
     
    <label>Derni&egravere Entrevue: </label>
    <input type="text" name="dernierentrevue" size="30" /><br />
     
    <label>Salaire : </label>
    <input type="text" name="salaire" size="30" /><br />
     
    <label>Status: </label>
    <select name="status">
    <option value="Consultant">Consultant</option>
     
     
    </select>
    </fieldset>
     
    <p class="titre">Commentaire</p>
    <fieldset id="message">
    <textarea name="message" rows="5" cols="40"></textarea>
    </fieldset>
     
    <p id="bouton">
    <input type="submit" value="Valider" />
    </p>
     
    </form>
    </body>
     
    </html>

  6. #6
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Qu'est-ce qui ne fonctionne pas ? Y a-t-il des messages d'erreur ?

    Qu'est-ce que vous tentez de faire ? Qu'est-ce que vous espérez, et qu'est-ce qu'il se passe en réalité ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    Eh bien il ne m'affiche aucun message d'erreur. Quand j'appuie sur le bouton modifier, j'aimerais qu'il me redirige sur un formulaire pré-remplie et je modifie ce que je veux ensuite ça mets a jours ma base de donnée. Mais quand j'appuie sur modifier il ne ce passe rien

  8. #8
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Une fois de plus, vous manquez de précision : qu'est-ce que ça veut dire "il ne se passe rien" ?? Vous avez une page blanche ? Vous voyez votre formulaire mais pas pré-rempli ??

    Quoi qu'il en soit, dans votre fichier "modification.php", c'est simple : vous ne faites rien avec votre requête.

    Vous faites un mysql_query() mais pas de mysql_fetch_assoc(). Donc déjà vous ne récupérez AUCUNE données.
    De plus, dans votre formulaire, vous n'avez pas un seul attribut "value", le PHP et l'HTML, ce n'est pas de la magie. Si vous voulez que quelque chose s'affiche, il faut faire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "Hello world!";

    Je vous ai mis un code pratiquement complet (le formulaire est complet en tout cas!) merci de vous en inspirer...


    Tant que j'y suis, pensez à nommer correctement vos fichiers :
    - "modification.php" => ce fichier ne fait AUCUNE modification !! il affiche simplement un formulaire
    - "sortie.php" => ça ne veut rien dire. Limite, je verrais bien ce genre de nom pour un fichier qui gérerait le fait qu'on click sur un lien externe et qui afficherait un avertissement

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    Bon j'ai tester quelque chose mais malheureusement cela ne fonctionne toujours pas.

    modification1.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <html>
     
      <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <img src="images/logo.png" alt="Logo Sylog Conseil" id="logo"/>
    <link href="style.css" rel="stylesheet" type="text/css" />
        <title>Modification de Donn&eacutees </title>
      </head>
    <body>
      <?php
        //connection au serveur:
        $cnx = mysql_connect( "localhost", "root", "" ) ;
     
        //sélection de la base de données:
        $db = mysql_select_db( "stage" ) ;
     
        //requête SQL:
        $sql = "SELECT *
    	      FROM formulaire
    	      ORDER BY nom" ;
     
        //exécution de la requête:
        $requete = mysql_query( $sql, $cnx ) ;
     
        //affichage des données:
        while( $result = mysql_fetch_object( $requete ) )
        {
           echo(
               "<div align=\"center\">"
               .$result->nom." ".$result->prenom
               ." <a href=\"modification2.php?id=".$result->id."\">modifier</a></div>\n"
           ) ;
        }
      ?>
    </body>
    </html>
    modification2.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <html>
      <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <img src="images/logo.png" alt="Logo Sylog Conseil" id="logo"/>
    <link href="style.css" rel="stylesheet" type="text/css" />
        <title>Modification de Donn&eacutees</title>
      </head>
    <body>
     
    <?php
      //connection au serveur:
      $cnx = mysql_connect( "localhost", "root", "" ) ;
     
      //sélection de la base de données:
      $db = mysql_select_db( "stage" ) ;
     
      //récupération de la variable d'URL,
      //qui va nous permettre de savoir quel enregistrement modifier
      $id  = $_GET["id"] ;
     
      //requête SQL:
      $sql = "SELECT *
                FROM nom
    	    WHERE id = ".$id ;
     
      //exécution de la requête:
      $requete = mysql_query( $sql, $cnx ) ;
     
      //affichage des données:
      if( $result = mysql_fetch_object( $requete ) )
      {
      ?>
      <form action="modification3.php" method="POST">
      <input type="hidden" name="id" value="<?php echo($id) ;?>">
      <table border="0" align="center" cellspacing="2" cellpadding="2">
        <tr align="center">
          <td>Nom</td>
          <td><input type="text" name="nom" value="<?php echo($result->nom) ;?>"></td>
        </tr>
        <tr align="center">
          <td>Pr&eacutenom:</td>
          <td><input type="text" name="prenom" value="<?php echo($result->prenom) ;?>"></td>
        </tr>
        <tr align="center">
          <td>Derni&egravere Entrevue:</td>
          <td><input type="text" name="dernierentrevue" value="<?php echo($result->dernierentrevue) ;?>"></td>
        </tr>
        <tr align="center">
          <td>Commentaire:</td>
          <td><input type="text" name="message" value="<?php echo($result->cp) ;?>"></td>
        </tr>
     
        <tr align="center">
          <td colspan="2"><input type="submit" value="modifier"></td>
        </tr>
      </table>
    </form>
     
      <?php
      }//fin if 
      ?>
     
    </body>
    </html>
    modification3.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
      //connection au serveur
      $cnx = mysql_connect( "localhost", "root", "" ) ;
     
      //sélection de la base de données:
      $db  = mysql_select_db( "stage" ) ;
     
      //récupération des valeurs des champs:
      //nom:
      $nom     = $_POST["nom"] ;
      //prenom:
      $prenom = $_POST["prenom"] ;
      //adresse:
      $dernierentrevue = $_POST["dernierentrevue"] ;
      //code postal:
      $message      = $_POST["message"] ;
     
      //récupération de l'identifiant de la personne:
      $id         = $_POST["id"] ;
     
      //création de la requête SQL:
      $sql = "UPDATE personnes
                SET nom         = '$nom', 
    	          prenom     = '$prenom',
    		  dernierentrevue    = '$dernierentrevue',
    		  message           = '$message'		 
               WHERE id = '$id' " ;
     
      //exécution de la requête SQL:
      $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
     
     
      //affichage des résultats, pour savoir si la modification a marchée:
      if($requete)
      {
        echo("La modification à été correctement effectuée") ;
      }
      else
      {
        echo("La modification à échouée") ;
      }
    ?>
    Lorsque j'appuie sur modifier devant le nom que je veux ça m'affiche cette erreur (un warning pour être précis) :
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource on line 30 (modification2.php)

  10. #10
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Vous avez probablement un problème avec votre quête de la ligne juste au-dessus.

    Vous devriez ajouter des "or die()" afin que le code bloque quand la requête ne peut aboutir.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //requête SQL:
      $sql = "SELECT *
                FROM nom
    	    WHERE id = ".$id ;
     
      //exécution de la requête:
      $requete = mysql_query( $sql, $cnx ) or die(mysql_error());

    A mon avis, votre $_GET['id'] n'est pas défini et vu que vous ne faites aucune vérification, il va malgré tout tenté d'exécuter la requête, sauf que là, la requête donne ça :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
                FROM nom
    	    WHERE id =

    Cette syntaxe est tout à fait incorrecte et donc retourne une erreur (à vous de l'afficher afin de confirmer ou non ceci).


    PS : Vos noms de fichiers sont de pire en pire...

    - modification1.php : y'a rien qui concerne la modification là-dedans. A part un bouton "modifier". Ceci est une page de listing de la DB. Appelez-la par exemple "listing.php" (c'est pas genial car on ne sait pas de quel listing il s'agit mais c'est déjà mieux !)
    - modification2.php : cette page ne fait toujours pas de modification. Vous pourriez l'appeler "form.php" vu que c'est tout ce qu'elle contient : le formulaire de modification
    - modification3.php : toujours pas genial vu que ça veut dire que vous passerez par une page différente encore pour l'ajouter alors 99.9% des traitements sont les mêmes...

    Voici personnellement ce que j'aurais mis :
    - entrevues_listing.php
    - entrevues_form.php
    - entrevues_form_manage.php

    PS 2 : J'ai l'impression que l'erreur des noms de fichiers... vous faites pareil avec vos tables. Nommez les choses proprement ! (fichier, tables, champs, etc) ... ou ne vous étonnez pas que vous ne vous y retrouvez pas !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Liaison entre 2 formulaires sans passer par les relations
    Par lucas-18 dans le forum IHM
    Réponses: 1
    Dernier message: 17/11/2009, 19h21
  2. Envoyer formulaire sans passer par logiciel de messagerie
    Par memelle83 dans le forum Débuter
    Réponses: 4
    Dernier message: 16/12/2008, 15h18
  3. Actualiser formulaire sans passer par bouton
    Par roswell34 dans le forum InfoPath
    Réponses: 6
    Dernier message: 25/04/2008, 09h57
  4. [MySQL] Interroger mysql sans passer par phpmyadmin
    Par cirtey dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 01/06/2007, 22h30
  5. Réponses: 15
    Dernier message: 22/02/2007, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo