Comment on récupère en variable une informations d'une cellule ?
Une cellule dont on indique son emplacement ?
Comment on récupère en variable une informations d'une cellule ?
Une cellule dont on indique son emplacement ?
Qu'est-ce que tu appelles une cellule ?Envoyé par Jimmy_S
une cellule de la table !
Enfin une des allocations quoi :p
Comment dire : un équivalent à :
'entity' where id = 1 par exemple. là je prends la valeur entity où id = 1 .
Je crois plutôt que cellule correspond à un tableau, mais bon...Envoyé par Jimmy_S
![]()
Pour ta question, je pense que c'est de la syntaxe sql de base. Il faut donc que tu lises les tutoriels avant de poser ces questions. Celui-ci est excellent : http://sql.developpez.com/
Pour simplifier , je veux donnez comme valeur à une variable quelquonque , la valeur d'une des données présente ma BDD .
Tu vois ce que je veux dire ?
Tu l'as plus ou moins déjà fait dans ton script au début !
Ouép mais j'arrive pas à adapter.
Quelque chose comme ça irait ? :
Ca me sort ça chez moi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $Yearbdd = mysql_query("SELECT Year from iso where id = $Edit") or die ("Erreur SQL"); print '<br>'; print $Yearbdd;
Resource id #4
![]()
Est ca c'est quoi ?
Envoyé par Jimmy_S
![]()
Tu n'as plus qu'à faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $concatenation = $resultat['Year'].$resultat['Project']....;
Oui mais dans ce cas là on recalcule toutes les ref non ? N'est il pas plus léger de coder ça juste à la fin d'une modification et d'update la ref ?
C'est moins lourd pour la BDD non ?
Bon on efface tout et on recommence car je m'embrouille, toi aussi et finalement je sais pas si quelqu'un sait ce que tu veux faire....
Alors, quel est ton problème du moment ?
Je me répète, mais tu dois lire les tutoriels car ça c'est vraiment de l'interaction php/mysql de base : une requête n'envoie pas un résultat mais un identifiant de résultat, qu'il faut ensuite utiliser dans une boucle pour obtenir les valeurs dans un array...Envoyé par Jimmy_S
Lis les tutoriels !
Alors le probleme :
Quand un user modifie les informations d'une ligne de données, il rentre l'id de la ligne et peut donc modifier tous les éléments.
A la fin de ce code , il faut donc regénérer la référence (Ref) de la ligne qu'il a modifié . Par conséquent il faut récupérer toutes les données de la bdd , générer la nouvelle Ref et faire écraser l'ancienne.
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 if (isset($_POST['Edit'])){ if ($_POST['Edit'] != "") { print 'Edit Activé'; $Edit = $_POST['Edit']; print ' Le Champ à modifier est :'; print $Edit; if (isset($_POST['Year'])) { if ($_POST['Year'] != "") { $Year = $_POST['Year']; mysql_query("Update iso Set Year ='$Year' where Id =$Edit ");}} if (isset($_POST['Project'])) { if ($_POST['Project'] != "") { $Project = $_POST['Project']; mysql_query("Update iso Set Project ='$Project' where Id =$Edit ");}} if (isset($_POST['DocNumber'])) { if ($_POST['DocNumber'] != "") { $DocNumber = $_POST['DocNumber']; mysql_query("Update iso Set DocNumber ='$DocNumber' where Id =$Edit ");}} if (isset($_POST['Entity'])) { if ($_POST['Entity'] != "") { $Entity = $_POST['Entity']; mysql_query("Update iso Set Entity ='$Entity' where Id =$Edit ");}} if (isset($_POST['Kind'])) { if ($_POST['Kind'] != "") { $Kind = $_POST['Kind']; mysql_query("Update iso Set Kind ='$Kind' where Id =$Edit ");}} }}
On ne peut la générér via une concaténation des saisie clavier dans la formulaire car, l'user n'est pas obligé de changer tous les champs.
Exemple : Il modifie 'Year' dans la ligne 3 (id = 3) , alors la référence de cette ligne 3 dans la BDD devra être regénéré !
Si je lis la réponse d'audessus , je suis obligé de regénérer toutes les Référence dans un While ? Comme j'ai fait pour l'affichage du tableau ? N'y a t'il pas plus léger ?
alors :
1. tu récupère les données du formulaires (id & cie), ca tu sais faire
2. tu récupère les données correspondant à l'id, suit les tutoriels comme te l'a suggéré si justement vg33; Cadeau : http://php.developpez.com/cours/
3. Tu construit ta nouvelle référence en prenant les données de (2.) + celles du user (1.)
4. Tu fais la mise à jour de la BD avec un joli update en prenant (1.) + (3.)
Et c'est fini...
Bon, quelques remarques puisque tu ne veux pas lire les tutoriels![]()
1) Dans ton script, si tu as 5 données à modifier, tu fais 5 requêtes, alors qu'une seule suffit quel que soit le nombre de données.
2) Ton identifiant ne change pas à chaque requête ! Heureusement, sinon il serait impossible de le retrouver ! MySql va sûrement modifier l'emplacement où sera enregistré ta ligne (pour faire simple), mais ça, ça ne te concerne pas, puisque tu lui demanderas toujours le même identifiant qui permet justement de retrouver un enregistrement unique.
Tu fais peut être l'erreur à cause de l'AUTO INCREMENT. Cette fonctionnalité ne fonctionne que lors d'un INSERT, heureusement pas lors d'un UPDATE, d'un SELECT ou encore d'un ALTER TABLE...
J'ai fait comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 while ( $resultat = mysql_fetch_array($req)) { $Kindd = "-".$resultat['Kind']; $RefNew = $resultat['Entity'].$resultat['Project'].$Kindd.$resultat['DocNumber']; mysql_query("Update iso Set Ref ='$RefNew");}
Je mets tout le code :
Cela ne marche pas , la boucle while ne semble pas marcher et ne pas mettre à jour la BDD.
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 <!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="ajout.php">Accéder à la page d'ajout de nouvelles données</A><br><br> <form method="POST" action="modif2.php"> <b> Entrez l'ID de la Ligne à Modifier :</b><br> <input type="text" name="Edit"><br><br> Year :<br> <input type="text" name="Year"><br><br> Project : <br> <input type="text" name="Project"><br><br> Document Number :<br> <input type="text" name="DocNumber"><br><br> Kind :<br> <input type="text" name="Kind"><br><br> Entity :<br> <input type="text" name="Entity"><br><br> <input type="submit" name="submit" value="Modifier"> <i>Ne rentrez que les valeurs à modifier..</i> <? $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['Edit'])){ if ($_POST['Edit'] != "") { print 'Edit Activé'; $Edit = $_POST['Edit']; print ' Le Champ à modifier est :'; print $Edit; if (isset($_POST['Year'])) { if ($_POST['Year'] != "") { $Year = $_POST['Year']; mysql_query("Update iso Set Year ='$Year' where Id =$Edit ");}} if (isset($_POST['Project'])) { if ($_POST['Project'] != "") { $Project = $_POST['Project']; mysql_query("Update iso Set Project ='$Project' where Id =$Edit ");}} if (isset($_POST['DocNumber'])) { if ($_POST['DocNumber'] != "") { $DocNumber = $_POST['DocNumber']; mysql_query("Update iso Set DocNumber ='$DocNumber' where Id =$Edit ");}} if (isset($_POST['Entity'])) { if ($_POST['Entity'] != "") { $Entity = $_POST['Entity']; mysql_query("Update iso Set Entity ='$Entity' where Id =$Edit ");}} if (isset($_POST['Kind'])) { if ($_POST['Kind'] != "") { $Kind = $_POST['Kind']; mysql_query("Update iso Set Kind ='$Kind' where Id =$Edit ");}} }} [quote] while ( $resultat = mysql_fetch_array($req)) { $Kindd = "-".$resultat['Kind']; $RefNew = $resultat['Entity'].$resultat['Project'].$Kindd.$resultat['DocNumber']; mysql_query("Update iso Set Ref ='$RefNew'");}[/quote] 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>
Je comprends mieux : ta réference est constuite avec les différents champs.Envoyé par Jimmy_S
Dans ce cas-là, c'est très simple. Que tu sois en UPDATE ou en INSERT, tu as à ta disposition toutes les données dans tes variables php. Tu modifies donc tout dans la bdd en une seule requête... Je ne vois pas où est le problème.
Elles ne sont pas toutes dans le script car :
L'user n'est pas obligé de rentrer tous les champs à modifier.
Il peut modifier qu'un seul champs si il le souhaite, donc je ne peux pas faire la concaténation à partir des $_POST , c'est pour cela que je dois générer la Réf via la BDD.
Tu attaques trop de problème de front. occupe toi déjà de modifier proprement ta bd avant de t'occuper de la gestion des ref...
J'essaye comme ceci , et toutes les références ont pris la valeur de la dernière référence ajouter sur la page ajout.phpwhile ( $resultat = mysql_fetch_array($req))
{
$Kindd = "-".$resultat['Kind'];
$RefNew = $resultat['Entity'].$resultat['Project'].$Kindd.$resultat['DocNumber'];
mysql_query("Update iso Set Ref ='$RefNew'");
$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;
Partager