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.