Bonjour, Je suis un peu ennuyé pour mettre a jour une table.
Dans ma page tri.php, j'affiche chaque PID en fonction de chaque nom , avec la possibilité de modifier le PID de chaque nom:
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 <?php echo '<form method="post" action="insert_tri.php">'; echo '<table width="505" border="1">'; // on se connecte à MySQL $db = mysql_connect('localhost', 'root', ''); // on sélectionne la base mysql_select_db('phplistdb',$db); // on crée la requête SQL $sql = 'SELECT DISTINCT name,pid FROM phplist_listattr_marque'; // on envoie la requête $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrement while($data = mysql_fetch_assoc($req)) { // on affiche les informations de l'enregistrement en cours echo '<tr height="41"><td>Marque : '.$data['name'].'</td>'; echo '<td>PID : <input type="text" name="pid" value="'. $data['pid'] . '" size="40"></td></tr>'; } echo '</table>'; echo '<br><br><input type=submit name="subscribe" value="Subscribe">'; echo '</form>'; ?>
dans insert_tri.php, j'aimerai recuperer tout les noms et PID, et les inserer dans la table. Il me dit que les infos sont bien ajoutées, mais rien de modifié dans la base.
insert_tri.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 <?php // On commence par récupérer les champs if(isset($_POST['name'])) $name=$_POST['name']; else $name=""; if(isset($_POST['pid'])) $pid=$_POST['pid']; else $pid=""; echo 'nom :'.$name.'<br><br>'; echo 'pid :'.$pid.'<br><br>' ; // connexion à la base $db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error()); // sélection de la base mysql_select_db('phplistdb',$db) or die('Erreur de selection '.mysql_error()); // on écrit la requête sql $sql = "UPDATE phplist_listattr_marque SET pid ='$pid' WHERE name='$name' "; // on insère les informations du formulaire dans la table mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); // on affiche le résultat pour le visiteur echo 'Vos infos on été ajoutées.'; mysql_close(); // on ferme la connexion ?>
Quand je fais un UPDATE phplist_listattr_marque SET pid ='4' WHERE name='voiture' direct dans PhpMyAdmin par exemple, tout les champs voiture sont bien modifiés.
Voyez vous ce qui ne va pas dans mon code ? j'ai l'impression que l'ensemble des noms et PID ne sont pas passés a insert_tri.php, car dans le echo il maffiche juste PID = 1...
Auriez vous une idée ? Merci d'avance de votre aide.
Partager