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 :

[Conception] Pb update avec formulaires php [Débutant(e)]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 2
    Points
    2
    Par défaut [Conception] Pb update avec formulaires php
    Bonjour ,
    je suis debutant en php
    g mis en place une bd ou je souhaite ajouter/modifier/supprimer des données a volonté par le biais d'un formulaire !Mon pb se situe au niveau de modifier !
    Je ne peux que modifier le dernier enregistrement :
    Modifier un enregistrement :

    Mon formulaire :

    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
    $link = mysql_connect("localhost","root",) or die ("Impossible de se connecter");
    mysql_select_db ("test")or die ("Impossible d'accéder à la base de données");
     
    <br><br>
    <form name="modif_free" action="modif_free.php" method="post">  
    <table border="0">
    <?
    $query="SELECT * FROM pages";
    $result=mysql_query($query);
    while($val=mysql_fetch_array($result))
    {
    $Id_page=$val["Id_page"];
    $Titre=$val["Titre"];
    $Mots_cles=$val["Mots_cles"];
    $Description=$val["Description"];
    $Contenu=$val["Contenu"];
    $Id_parent=$val["Id_parent"];	
    print"<tr>";
    print"<td width='5'>";
    print"<input type='text' value='$Id_page' name='Id_page' size='3' maxlength='3'>";
    print"</td>";
    print"<td>";
    print"<input type='text' value='$Titre' name='Titre' size='40'>";
    print"</td>";
    print"<td>";
    print"<input type='text' value='$Mots_cles' name='Mots_cles' size='40'>";
    print"</td>";
    print"<td>";
    print"<input type='text' value='$Description' name='Description' size='40'>";
    print"</td>";
    print"<td>";
    print"<input type='text' value='$Contenu' name='Contenu'>";
    print"</td>"; 
    print"<td>";
    print"<input type='text' value='$Id_parent' name='Id_parent' size='3' maxlength='3'>";
    print"</td>";
    print"<td>";
    print"<input type='submit' value='modifier'>";
    print"</td>";
    print"</tr>";
    }
    mysql_close($link);
    ?>
    </form>
    </table>
    </body>
    </html>
    Mon code pour mofifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ?	
    $link = mysql_connect("localhost","root","") or die ("Impossible de se connecter");
    mysql_select_db ("test")or die ("Impossible d'accéder à la base de données");
    $query="UPDATE pages SET `Titre`='$Titre',`Mots_cles`='$Mots_cles',`Description`='$Description',`Contenu`='$Contenu', `Id_parent`='$Id_parent' WHERE Id_page=$Id_page";
    $result=mysql_query($query);
    mysql_close($link);
    print "$Id_page a été modifié.";
    ?>
    Id_page est tj le dernier enregistrement et effectivement je peux seulement modifier celui la

    Merci de votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    Salut,
    Peux montrer ta bd?

  3. #3
    Membre averti Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Points : 388
    Points
    388
    Par défaut
    un conseil pour débuguer facilement sans demander : affiche par un print_r ou un echo ta requete SQL,et tu verras rapidement d'ou vient le prob !

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 2
    Points
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE `pages` (
      `Id_page` int(11) NOT NULL auto_increment,
      `Titre` varchar(255) NOT NULL default '',
      `Mots_cles` varchar(255) NOT NULL default '',
      `Description` varchar(255) NOT NULL default '',
      `Contenu` text NOT NULL,
      `Id_parent` int(11) NOT NULL default '1',
      PRIMARY KEY  (`Id_page`)
    avec print "$Id_page" resultat > ex 23 le dernier

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    si j'ai bien compris tu as plusieurs bouton submit dans le formulaire?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 2
    Points
    2
    Par défaut
    oui

    un pour ajouter > supprimer > modifier
    et chacun appelle un fichier # ça fct pour les deux premiers !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    combien de bouton en tout?
    car normalement pour un formulaire 1 et un seul bouton : modifier pareil pour supprimer

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 2
    Points
    2
    Par défaut
    3 boutons
    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
    84
    85
    86
     
     
    html>
    <head>
    <title>Administration site</title>
    </head>
    <body>
    Ajouter un Enregistrement : <br><br>
    <form name="ajout" action="ajout_free.php" method="post">
    <table border=1>
    <tR><TD>Titre :  <TD><input type="text" name="Titre" size="40" maxlength="256"><br>
    <tR><TD>Mots_cles :<TD><input type="text" name="Mots_cles" size="40" maxlength="256"><br>
    <tR><TD>Description :<tD><input type="text" name="Description" size="40" maxlength="256"><BR>
    <tR><TD>Contenu :	<TD><textarea name="Contenu" cols="50" rows="11"></textarea><BR><br>																				 
    <tR><TD>Id_parent : <TD><input type="text" name="Id_parent" size="40" maxlength="3"><br>
    <TR><TD colspan=2><input type=submit value="Enregistrer">
    </form>
    </table> 
    <br><br>
    Supprimer un enregistrement : <br><br>
    <form name="suppr" action="suppr_free.php" method="post">
    <?
    $link = mysql_connect("localhost",""root,) or die ("Impossible de se connecter");
    mysql_select_db ("test")or die ("Impossible d'accéder à la base de données");
     
    $query="SELECT * FROM pages order by Id_page";
    $result=mysql_query($query);
    print"<select name=Id_page>";
    while ($val = mysql_fetch_array($result))
    {
    $Id_page=$val["Id_page"];
    $Titre=$val["Titre"];
    $Mots_cles=$val["Mots_cles"];
    $Description=$val["Description"];
    $Contenu=$val["Contenu"];
    $Id_parent=$val["Id_parent"];
    print "<option value=$Id_page name=Id_page>$Titre</option>";
    }
    print "</select><br><br>";
    print "<input type=submit value=Valider>";
    ?>
    </form>
    Modifier un enregistrement : <br><br>
    <form name="modif_free" action="modif_free.php" method="post">  
    <table border="0">
    <?
    $query="SELECT * FROM pages order by Id_page";
    $result=mysql_query($query);
    while($val=mysql_fetch_array($result))
    {
    $Id_page=$val["Id_page"];
    $Titre=$val["Titre"];
    $Mots_cles=$val["Mots_cles"];
    $Description=$val["Description"];
    $Contenu=$val["Contenu"];
    $Id_parent=$val["Id_parent"];	
    print"<tr>";
    print"<td width='5'>";
    print"<input type='text' value='$Id_page' name='Id_page' size='3' maxlength='3'>";
    print"</td>";
    print"<td>";
    print"<input type='text' value='$Titre' name='Titre' size='40'>";
    print"</td>";
    print"<td>";
    print"<input type='text' value='$Mots_cles' name='Mots_cles' size='40'>";
    print"</td>";
    print"<td>";
    print"<input type='text' value='$Description' name='Description' size='40'>";
    print"</td>";
    print"<td>";
    print"<input type='text' value='$Contenu' name='Contenu'>";
    print"</td>"; 
    print"<td>";
    print"<input type='text' value='$Id_parent' name='Id_parent' size='3' maxlength='3'>";
    print"</td>";
    print"<td>";
    print"<input type='submit' value='modifier'>";
    print"</td>";
    print"</tr>";
    }
    mysql_close($link);
    ?>
    </form>
    </table>
    </body>
    </html>
    G fais le test seul même pb !

    merci de votre aide

  9. #9
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    le nom de tes champs "text" doivent etre different
    ex: name='Id_page_1', name='Id_page_2' etc...

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 2
    Points
    2
    Par défaut
    ou dans quel parti du code ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    peux tu montrer : modif_free.php stp

    pour la modification, tu as 1 seul formulaire avec plusieurs boutons modifier...

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 2
    Points
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?	
    $link = mysql_connect("localhost","root","") or die ("Impossible de se connecter");
    mysql_select_db ("test")or die ("Impossible d'accéder à la base de données");
     
    $query="UPDATE pages SET `Titre`='$Titre',`Mots_cles`='$Mots_cles',`Description`='$Description',`Contenu`='$Contenu', `Id_parent`='$Id_parent' WHERE Id_page=$Id_page";
    $result=mysql_query($query);
    mysql_close($link);
    print "$Id_page a été modifié.";
    ?>
    G fé # modif mé ss résultat tj le dernier eneegistrement que l'on peut modif
    je vois bien le pb mé je n'y arrive pad il ne prend pas le bon Id_page ou ne le connais donc prend en compte que le dernier....

  13. #13
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Salut

    D'aprés ta source, tu devrais avoir un affichage de formulaire par nombre d'enregistrements, c'est bien ça ?

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 125
    Points : 69
    Points
    69
    Par défaut
    c'est normal que tu ne modifies que le dernier enregistrement, car tous les bouton modifier on le meme nom, tu ne peux pas savoir quelle ligne doit etre modifiée...

    une autre façon de faire pour la modification :
    tu affiches chaque ligne de resultat avec un bouton radio(valeur : l'id a modifier) pour chaque ligne et 1 et 1 seul bouton modifier en bas

    dans ton fichier modif_free.php tu recupere la valeur du bouton radio (l'id a modifier)

    bon courage

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 2
    Points
    2
    Par défaut
    oui une ligne par nombre de resultat qui s'affiche > pour alain

  16. #16
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Ce qui n'est pas logique dans la source, c'est qu'il n'y a qu'une seule balise FORM pour l'ensemble des enregistrements.
    Il faudrait intégrer cette même balise dans la boucle while.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    while($val=mysql_fetch_array($result))
    {
    print("<form name='modif_free' action='modif_free.php' method='post'>");
     
    ............
    ............
    ...........
     
    print"<input type='submit' value='modifier'>";
    print("</form>");
    }

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 2
    Points
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    while($val=mysql_fetch_array($result))
    {
    print("<form name='modif_free' action='modif_free.php' method='post'>");
     
    ............
    ............
    ...........
     
    print"<input type='submit' value='modifier'>";
    print("</form>");
    }
    Tj meme pb et rajout de bouton modifier en haut du formulaire....

  18. #18
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    je ne suis pa daccor un seul formulaire suffit

  19. #19
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Tu as pensé à supprimer l'ancien FORM, celui qui se trouve avant la requête ?

    Citation Envoyé par boo64
    je ne suis pa daccor un seul formulaire suffit
    [edit] Oups !

    Pardon pour l'interférence.

  20. #20
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    avec une check box
    pour chaque
    ligne
    ke tu coche si tuv eu modifier comme cela tu peu en modifier plusieur et un seul bouton modifier

Discussions similaires

  1. Probleme avec formulaires php sur le site distant
    Par Lionel_aw dans le forum Langage
    Réponses: 2
    Dernier message: 26/03/2010, 16h16
  2. [MySQL] requete update avec fonction php sur champs
    Par SpaceFrog dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/10/2008, 09h14
  3. [SQL] UPDATE via formulaire PHP
    Par eizenhower dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 27/07/2007, 11h25
  4. Difficulté avec formulaire PHP
    Par Miam Maikan dans le forum Langage
    Réponses: 1
    Dernier message: 15/09/2006, 03h45
  5. Problème avec formulaire PHP
    Par silvain dans le forum Langage
    Réponses: 8
    Dernier message: 28/08/2006, 23h58

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