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

PHP & Base de données Discussion :

modifier. je n'arrive pas à trouver de solution


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 38
    Par défaut modifier. je n'arrive pas à trouver de solution
    salut les amis,
    j'ai un problème depuis quelque jours, je suis bloqué d'être trouver une solution , comme je n'ai trouver aucune personne qui peux m'aider et me donner une simple solution avec une explication bien claire.
    voilà mon projet (j'ai donné ici un petit exemple):
    j'ai une base de donnée appelée: Personnelle, elle contient une table appelée:Identification contient deux champs, un champ pour le Nom et l'autre pour Prénom.
    j'ai crée des formulaire (html) pour ajouter des Noms et Prénoms à la base de donnée. j'ai crée aussi un formulaire pour la recherche.
    si je veux chercher une personne qui est enregistré dans ma base de donnée, je dois saisir son nom dans ce tableau et je clique sur ok:

    et voilà les codes de cette partie:
    code html:
    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
    <html>
     
    <head>
    <meta http-equiv="Content-Language" content="fr">
    <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
    <!--mstheme--><link rel="stylesheet" href="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/FrontPageTempDir/mstheme/sweets/swee1111.css">
    <meta name="Microsoft Theme" content="sweets 1111, default">
    </head>
     
    <body>
    <form method="post" name="formulaire" action="recherche.php">
    <p align="center"><u><b>recherche</b></u></p>
    <div align="center">
      <center>
      <table border="1" cellspacing="1" width="27%">
        <tr>
          <td width="50%">Saisir le Nom</td>
          <td width="50%">:<input type="text" name="Nom" size="13"></td>
        </tr>
        <tr>
          <td width="50%">&nbsp;</td>
          <td width="50%">&nbsp;<input type="submit" value="OK" name="B3"></td>
        </tr>
      </table>
      </center>
    </div>
     
    </body>
     
    </html>
    et voilà le code 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
    <?php
    $nom=$_POST['Nom'];
    $connexion = mysql_connect("localhost","root","");
    $base = mysql_select_db("Personnelle");
    $varid= htmlspecialchars($_POST['Nom'],ENT_QUOTES);
    $sql = mysql_query('SELECT * FROM Identification WHERE Nom="'.$varid.'"');
     
    ?>
    <center><table  BORDER=7  BGCOLOR="#E431EB" WIDTH="50%" HEIGHT="10%">
    <?php
      while($result = mysql_fetch_array($sql))//le lancement de la boucle
      { ?>
      <tr><td BGCOLOR="#B5E197" scope="row"><B>Nom</B></td><td BGCOLOR="#B5E197" scope="row"><?php echo $result ['Nom'] ?></td> </tr>
        <tr><td BGCOLOR="#FEAB74"scope="col"><B>Prénom</B></td><td BGCOLOR="#FEAB74"scope="row"><?php echo $result ['Prénom'] ?></td> </tr>
        <?php } ?>
    </table>
    <form method="POST" action="modifier.php">
      <input type="submit" value="Modifier" name="Modifier">
    </form></center>
    maintenant je veux modifier les données de la résultat en cliquent sur le bouton Modifier:

    et quant je clique sur le bouton Modifier le Tableau suivant apparaitre:


    et voilà le code php pour exécuter la modification:
    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
    <?php
    $nom=$_POST['Nom'];
    $connexion = mysql_connect("localhost","root","");
    $base = mysql_select_db("Personnelle");
     
    $sql = mysql_query('UPDATE Identification SET Prénom="hzika" WHERE nom="Almakki";');
    ?>
    <center><table  BORDER=7  BGCOLOR="#E431EB" WIDTH="50%" HEIGHT="10%">
     
      <tr><td BGCOLOR="#B5E197" scope="row"><B>Nom</B></td><td BGCOLOR="#B5E197" scope="row"><?php echo  ?></td> </tr>
        <tr><td BGCOLOR="#FEAB74"scope="col"><B>Prénom</B></td><td BGCOLOR="#FEAB74"scope="row"><?php echo  ?></td> </tr>
    </table>
    <form method="POST" action="--WEBBOT-SELF--">
    <input type="submit" value="Enregistrer" name="B1"></p>
    </form>
    </center>
    le problème est:comment récupérer les données de deuxième colonne(le Nom et prénom)

    je sais qu'il faux ajouter quelque chose après "echo" dans le tableau de résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <tr><td BGCOLOR="#B5E197" scope="row"><B>Nom</B></td><td BGCOLOR="#B5E197" scope="row"><?php echo  ?></td> </tr>
        <tr><td BGCOLOR="#FEAB74"scope="col"><B>Prénom</B></td><td BGCOLOR="#FEAB74"scope="row"><?php echo  ?></td> </tr>
    mais j'ignore la quelle??
    aidez moi svp, je suis très intéressant

  2. #2
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    Euh il y a un moment où j'ai décroché malgré la qualité de la démarche avec les screens et tout (félicitations pour la patience d'ailleurs).

    En fait, quand tu cliques sur "Modifier", c'est censé te proposer un formulaire où tu mets le nouveau nom et le nouveau prénom afin de les enregistrer en base de données, c'est ça que tu veux? Et là tu bloques sur comment afficher les données dans le formulaire?

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 38
    Par défaut
    ...tu mets le nouveau nom et le nouveau prénom afin de les enregistrer en base de données, c'est ça que tu veux?
    oui, je veux quand je clique sur modifier le même tableau affichera avec les valeurs de Nom et prénom pour les modifier..
    merci de m'aider

  4. #4
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    Alors là déjà t'es à côté de la plaque...

    Ta requête SQL UPDATE n'a rien à faire là. Elle sert à enregistrer la modification, pas à en provoquer l'affichage dans un formulaire.

    Donc pour le formulaire, tu restes avec l'instruction SELECT dont tu te sers déjà pour afficher les données. Et tu mets ton echo de données dans l'attribut VALUE des <INPUT> HTML de ton formulaire.

    Après par contre, au clic sur enregistrer, là tu pourras utiliser UPDATE. Par contre, un conseil. Mets un 3ème champ dans ta table, un identifiant unique, parce que là si tu modifies le prénom en fonction du nom sachant que tu modifies aussi le nom dans ton formulaire, tu risques très fortement de faire page blanche. Cet identifiant, mets le en session ou au moins en champ caché (<hidden>).

  5. #5
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 38
    Par défaut
    tu as dit: Donc pour le formulaire, tu restes avec l'instruction SELECT dont tu te sers déjà pour afficher les données. Et tu mets ton echo de données dans l'attribut VALUE des <INPUT> HTML de ton formulaire.

    j'ai pas bien compris
    quel formulaire?
    dans le tableau de résultat il faux ajouter des zones de texte pour pouvoir modifier!

    j'ai enlevé le update, est je le mette dans une nouvelle page appelée: enregistrer.php voilà mon nouveau code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $nom=$_POST['Nom'];
    $connexion = mysql_connect("localhost","root","");
    $base = mysql_select_db("Personnelle");
    ?>
    <center><table  BORDER=7  BGCOLOR="#E431EB" WIDTH="50%" HEIGHT="10%">
     
      <tr><td BGCOLOR="#B5E197" scope="row"><B>Nom</B></td><td BGCOLOR="#B5E197" scope="row"><?php echo  ?></td> </tr>
        <tr><td BGCOLOR="#FEAB74"scope="col"><B>Prénom</B></td><td BGCOLOR="#FEAB74"scope="row"><?php echo  ?></td> </tr>
    </table>
    <form method="POST" action="enregistrer.php">
    <input type="submit" value="Enregistrer" name="enregistrer"></p>
    </form>
    </center>

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 37
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $connexion = mysql_connect("localhost","root","");
    $base = mysql_select_db("Personnelle");
    $sql = mysql_query('UPDATE Identification SET Prénom="hzika" WHERE nom="Almakki";');
     
    $sql_2 = mysql_query('SELECT * FROM Identification WHERE Nom="'.$varid.'"');
    echo "<table><tr><td>Nom</td><td>Prenom</td></tr>
    while ($col=mysql_fetch_array($sql_2))
    {
            echo "<tr><td>$col[Nom]</td><td>$col[prenom]</td></tr>";
    }
    echo "</table>";
    le update enregistre directement donc pas besoin de faire un bouton enregistrer !!

  7. #7
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 38
    Par défaut
    merci "bleubykey" mais ton code ne marche pas avec moi, quand je le copié dans Zand il me donner bp d'erreurs.
    je crois qu'il faux enlever la fonction UPDATE...
    je le mette dans une autre page php.
    j'ai le problème avec le contenue de tableau de résultat??
    il faux corriger ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql_2 = mysql_query('SELECT * FROM Identification WHERE Nom="'.$varid.'"');
    echo "<table><tr><td>Nom</td><td>Prenom</td></tr>
    while ($col=mysql_fetch_array($sql_2))
    {
            echo "<tr><td>$col[Nom]</td><td>$col[prenom]</td></tr>";
    }
    echo "</table>";
    merci

  8. #8
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    Bon alors,

    Tout d'abord, tu vas me faire le plaisir de rajouter une clé primaire à ta table parce que ça tu vas avoir que des soucis de maintenance. Si tu veux changer le nom de la personne, tu vas planter, je te l'ai dit. Après mets aussi des termes simples et surtout avec des caractères de base pour tes noms de tables et de champs. Donc "Prénom" devient "prenom" dans ce que je te propose.

    Quand tu cliques sur modifier, utilises ça:
    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
    <?php
    $varid=$_POST['id'];
    $connexion = mysql_connect("localhost","root","");
    $base = mysql_select_db("Personnelle");
     
    $sql = mysql_query('SELECT nom, prenom FROM Identification WHERE id='.$varid);
    $row = mysql_fetch_assoc($sql);
    ?>
    <center>
    <form method="POST" action="enreg.php">
    <input type="text" name="form_id" value="<?php echo $varid; ?>">
    <table  BORDER=7  BGCOLOR="#E431EB" WIDTH="50%" HEIGHT="10%"> 
      <tr><td BGCOLOR="#B5E197" scope="row"><B>Nom</B></td><td BGCOLOR="#B5E197" scope="row"><input type="text" name="form_nom" value="<?php echo $row['nom']; ?>"></td> </tr>
      <tr><td BGCOLOR="#FEAB74"scope="col"><B>Prénom</B></td><td BGCOLOR="#FEAB74"scope="row"><input type="text" name="form_pnom" value="<?php echo $row['prenom']; ?>"></td> </tr>
    </table>
    <input type="submit" value="Enregistrer" name="B1"></p>
    </form>
    </center>
    ça ça t'affichera le formulaire pour modifier le nom et le prénom.
    Maintenant, l'enregistrement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $varId=$_POST['form_id'];
    $varNom=$_POST['form_nom'];
    $varPrenom=$_POST['form_pnom'];
    $connexion = mysql_connect("localhost","root","");
    $base = mysql_select_db("Personnelle");
     
    $sql = mysql_query('UPDATE Personnelle SET nom=`'.$varNom.'`, prenom=`'.$varPrenom.'` WHERE id='.$varid);
    ?>
    Et voilà, je t'ai fait le minimum là, à toi de voir pour le reste. Mais à mon avis, tu devrais revoir certains principes du SQL et de la conception de bases de données...

Discussions similaires

  1. [JNI] FindClass n'arrive pas à trouver une classe
    Par Benoit_Aligon dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 04/07/2006, 15h40
  2. [Tableaux] probleme je n'arrive pas à trouver l'erreur
    Par harlock59 dans le forum Langage
    Réponses: 21
    Dernier message: 06/06/2006, 14h43
  3. Réponses: 5
    Dernier message: 14/05/2006, 22h41
  4. Une parse error que j'arrive pas à trouver
    Par Kerweb dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2006, 12h25

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