Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/08/2006, 08h24   #1
Invité de passage
 
Inscription : août 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 27
Points : 0
Points : 0
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 :
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 :
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
Manu_Corp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 09h37   #2
Nouveau Membre du Club
 
Inscription : juillet 2004
Messages : 125
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 125
Points : 38
Points : 38
Salut,
Peux montrer ta bd?
mohican13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 09h43   #3
Membre éclairé
 
Avatar de Joe Le Mort
 
Inscription : avril 2006
Messages : 392
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 392
Points : 361
Points : 361
Envoyer un message via MSN à Joe Le Mort
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 !
Joe Le Mort est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 09h50   #4
Invité de passage
 
Inscription : août 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 27
Points : 0
Points : 0
Code :
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
Manu_Corp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 09h54   #5
Nouveau Membre du Club
 
Inscription : juillet 2004
Messages : 125
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 125
Points : 38
Points : 38
si j'ai bien compris tu as plusieurs bouton submit dans le formulaire?
mohican13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 09h54   #6
Invité de passage
 
Inscription : août 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 27
Points : 0
Points : 0
oui

un pour ajouter > supprimer > modifier
et chacun appelle un fichier # ça fct pour les deux premiers !
Manu_Corp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 09h59   #7
Nouveau Membre du Club
 
Inscription : juillet 2004
Messages : 125
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 125
Points : 38
Points : 38
combien de bouton en tout?
car normalement pour un formulaire 1 et un seul bouton : modifier pareil pour supprimer
mohican13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 10h04   #8
Invité de passage
 
Inscription : août 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 27
Points : 0
Points : 0
3 boutons
Code :
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
Manu_Corp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 10h09   #9
Expert Confirmé
 
Avatar de yiannis
 
Inscription : septembre 2005
Messages : 1 499
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : septembre 2005
Messages : 1 499
Points : 2 563
Points : 2 563
le nom de tes champs "text" doivent etre different
ex: name='Id_page_1', name='Id_page_2' etc...
__________________
"Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN
yiannis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 10h19   #10
Invité de passage
 
Inscription : août 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 27
Points : 0
Points : 0
ou dans quel parti du code ?
Manu_Corp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 10h37   #11
Nouveau Membre du Club
 
Inscription : juillet 2004
Messages : 125
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 125
Points : 38
Points : 38
peux tu montrer : modif_free.php stp

pour la modification, tu as 1 seul formulaire avec plusieurs boutons modifier...
mohican13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 10h40   #12
Invité de passage
 
Inscription : août 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 27
Points : 0
Points : 0
Code :
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....
Manu_Corp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 10h59   #13
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Salut

D'aprés ta source, tu devrais avoir un affichage de formulaire par nombre d'enregistrements, c'est bien ça ?
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 11h08   #14
Nouveau Membre du Club
 
Inscription : juillet 2004
Messages : 125
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 125
Points : 38
Points : 38
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
mohican13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 11h17   #15
Invité de passage
 
Inscription : août 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 27
Points : 0
Points : 0
oui une ligne par nombre de resultat qui s'affiche > pour alain
Manu_Corp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 11h19   #16
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
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 :
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>");
}
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 11h27   #17
Invité de passage
 
Inscription : août 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 27
Points : 0
Points : 0
Code :
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....
Manu_Corp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 11h28   #18
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
je ne suis pa daccor un seul formulaire suffit
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 11h29   #19
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
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.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 11h33   #20
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
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
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h46.


 
 
 
 
Partenaires

Hébergement Web