Donc tu peux résoudre seul ton problème de syntaxe, non ?
Donc tu peux résoudre seul ton problème de syntaxe, non ?
Ca marche.. Merchi ! Je ne connais pas cette fonction mysql_fetch_assoc
Ca marche comme ça :
Merci beaucoup les gens !
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 $id_resultat= mysql_query("SELECT Entity from iso where Id = $Edit "); $valentity=mysql_fetch_assoc($id_resultat); $id_resultat2= mysql_query("SELECT Project from iso where Id = $Edit "); $valproject=mysql_fetch_assoc($id_resultat2); $id_resultat3= mysql_query("SELECT Kind from iso where Id = $Edit "); $valkind=mysql_fetch_assoc($id_resultat3); $id_resultat4= mysql_query("SELECT DocNumber from iso where Id = $Edit "); $valdocnumber=mysql_fetch_assoc($id_resultat4); $valkindd = "-".$valkind['Kind']; $RefNew = $valentity['Entity'].$valproject['Project'].$valkindd.$valdocnumber['DocNumber']; mysql_query("Update iso Set Ref ='$RefNew' WHERE Id = $Edit ");![]()
A priori (je n'ai pas testé), tout ton code ci-dessus peut être remplacé par :Envoyé par Jimmy_S
Tu testes ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $requete='UPDATE iso SET Ref=CONCAT(Entity, Project, "-", Kind, DocNumber) WHERE Id='.$Edit; mysql_query($requete);
Je teste demain matin au boulot ^^
Merci pour ton codeC'est bcp plus joli comme ça
![]()
J'ai adapté et ça fonctionne![]()
Je trouve ta technique beaucoup plus esthétique.
Je me remets dans le projet (5ème jour !). Merci à tous de votre aide, j'pense avoir pas mal progressé depuis que j'ai posté mes premières questions sur ce joli forum ^^
Bon une petite question à nos gentils spécialistes, y'a t'il une fonction PHP , qui permettent sous une certaine condition (if) faire un fresh global de la page ?
J'ai cherché , j'ai rien trouvé de transcendant, si vous avez une méthode , je suis à votre écoute
![]()
Faute de frappe pardon, je voulais dire un Refresh
Désolé![]()
Etant donné que le formulaire pointe sur la page où il se situe, le script Php qui gère l'affichage de la base de données ne s'actualise pas , je suis obligé de faire un refresh sur le navigateur !
Tu vois un peu le probleme ?
Heuuhhh... Il suffit d'appeler le script d'affichage après le script de modification... Comme ça, les modifs de la bdd seront prises en compte.Envoyé par Jimmy_S
![]()
J'ai rien de sécurisé en ligne.
En fait ce que je veux dire c'est que :
Y'a un formulaire sur la page ajout.php qui pointe sur elle même via méthode POST :
Et à la suite du code tout en bas y'a ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <form method="POST" action="ajout.php"> Enter Year<br> <input type="text" name="Year"><br><br> Enter Project<br> <input type="text" name="Project"><br><br> Enter Document Number<br> <input type="text" name="DocNumber"><br><br> Enter Entity<br> <input type="text" name="Entity"><br><br> Enter Kind<br> <input type="text" name="Kind">
Le truc c'est que quand je fais l'ajout, etant donné que le formulaire pointe sur la page où il est , et bien le tableau ne prends pas en compte les nouvelles valeurs si l'users en ajoute .
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 while ( $resultat = mysql_fetch_array($req)) { $output .= '<tr>'; $output .= '<td><div align="center">'.$resultat['Id'].'</div></td>'; $output .= '<td><div align="center">'.$resultat['Year'].'</div></td>'; $output .= '<td><div align="center">'.$resultat['Project'].'</div></td>'; $output .= '<td><div align="center">'.$resultat['DocNumber'].'</div></td>'; $output .= '<td><div align="center">'.$resultat['Kind'].'</div></td>'; $output .= '<td><div align="center">'.$resultat['Entity'].'</div></td>'; $output .= '<td><div align="center">'.$resultat['Ref'].'</div></td>'; $output .= '</tr>'; } $output .= '</table>'; echo $output;
En gros il ne voit pas la modif qu'il a fait !
Oui je pensais à ça effectivementEnvoyé par vg33
, mais si y'a une solution au probleme que j'ai , j'aimerai bien la connaitre , au moins pour ma culture ^^
relis ce que vg33 vient de te dire
EDIT: grilled....
C'est le cas ! Le script d'affichage est tout en bas dans le code , regarde :
ajout.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162 <!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"> <head> <title>Hello!</title> </head> <body> <br><A HREF="modif2.php">Accéder à la page de modification des données</A><br><br> <form method="POST" action="ajout.php"> Enter Year<br> <input type="text" name="Year"><br><br> Enter Project<br> <input type="text" name="Project"><br><br> Enter Document Number<br> <input type="text" name="DocNumber"><br><br> Enter Entity<br> <input type="text" name="Entity"><br><br> Enter Kind<br> <input type="text" name="Kind"> <input type="submit" name="submit" value="Ajouter"> <? $db = mysql_connect('localhost','root','root') or die ("Erreur de connexion"); mysql_select_db('mysql',$db) or die ("erreur de connexion base"); $req = mysql_query("SELECT Id,Year,Project,DocNumber,Entity,Kind,Ref from iso") or die ("Erreur SQL"); if (isset($_POST['Year'])) { if ($_POST['Year'] != "") { if (isset($_POST['Project'])) { if ($_POST['Project'] != ""){ if (isset($_POST['DocNumber'])) { if ($_POST['DocNumber'] != ""){ if (isset($_POST['Entity'])) { if ($_POST['Entity'] != ""){ if (isset($_POST['Kind'])) { if ($_POST['Kind'] != ""){ $Year = $_POST['Year']; print 'Year : '; print $Year; print '<br>'; $Project = $_POST['Project']; print 'Project : '; print $Project; print '<br>'; $DocNumber = $_POST['DocNumber']; print 'DocNumber : '; print $DocNumber; print '<br>'; $Entity = $_POST['Entity']; print 'Entity : '; print $Entity; print '<br>'; $Kind = $_POST['Kind']; $Kindd = "-".$Kind; print 'Kind : '; print $Kind; print '<br>'; $Ref = $Entity.$Project.$Kindd.$DocNumber; print' Ref = '; print $Ref; print'<br>'; $sqlinsert = "INSERT INTO iso (Id,Year,Project,DocNumber,Entity,Kind,Ref) VALUES ('','$Year','$Project','$DocNumber','$Entity','$Kind','$Ref')"; mysql_query($sqlinsert)or die(mysql_error()."<br />".$sqlinsert); }} }} }} }} }} else { print 'Il manque des valeurs !';} print'<br><br><br>'; $output = '<TABLE BORDER=5 BORDERCOLOR="blue">'; $output .= '<tr>'; $output .= '<td><div align="center"></div> <b>Id</b> </td>'; $output .= '<td><div align="center"></div> <b>Year</b> </td>'; $output .= '<td><div align="center"></div> <b>Project</b> </td>'; $output .= '<td><div align="center"></div> <b>DocNumber</b> </td>'; $output .= '<td><div align="center"></div> <b>Kind</b> </td>'; $output .= '<td><div align="center"></div> <b>Entity</b> </td>'; $output .= '<td><div align="center"></div> <b>References</b> </td>'; while ( $resultat = mysql_fetch_array($req)) { $output .= '<tr>'; $output .= '<td><div align="center">'.$resultat['Id'].'</div></td>'; $output .= '<td><div align="center">'.$resultat['Year'].'</div></td>'; $output .= '<td><div align="center">'.$resultat['Project'].'</div></td>'; $output .= '<td><div align="center">'.$resultat['DocNumber'].'</div></td>'; $output .= '<td><div align="center">'.$resultat['Kind'].'</div></td>'; $output .= '<td><div align="center">'.$resultat['Entity'].'</div></td>'; $output .= '<td><div align="center">'.$resultat['Ref'].'</div></td>'; $output .= '</tr>'; } $output .= '</table>'; echo $output; ?> </body> </html>
Dans un premier temps, je te conseille fortement de faire tous tes traitements de POST et insertions en bdd avant d'afficher le moindre html. Cela te permet de faire une redirection en cas d'erreur ou de tentative de piratage (passage d'une valeur au format interdit dans le html par exemple). De plus, tout INSERT étant fait avant le moindre affichage, tu peux ensuite faire un SELECT pour afficher l'état réel de la bdd (même si c'est inutile car tu as normalement déjà les données en variables). De plus, comme je l'ai déjà dit, cela permet de réafficher le formulaire préremplis en cas d'erreur.
pour que ta page affiche tes nouvelles valeurs tu dois faire ta requete d'insertion dans la base de donnée puis ta requete de selection.
Tu fais actuellement le contaire car tu as
puis
Code : Sélectionner tout - Visualiser dans une fenêtre à part $req = mysql_query("SELECT Id,Year,Project,DocNumber,Entity,Kind,Ref from iso") or die ("Erreur SQL");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $sqlinsert = "INSERT INTO iso (Id,Year,Project,DocNumber,Entity,Kind,Ref) VALUES ('','$Year','$Project','$DocNumber','$Entity','$Kind','$Ref')"; mysql_query($sqlinsert)or die(mysql_error()."<br />".$sqlinsert);
Si je refais un query MYSQL Select juste avant l'affichage est ce que cela marcherait ?
Je pense que tu ferais mieux de suivre le conseil que je te donne plus haut.Envoyé par Jimmy_S
![]()
Partager