Mysql : UPDATE ne marche pas chez moi

A force de perdre des jours et des jours à faire fonctionner la commande UPDATE, je suis stressée chaque fois que je dois mettre à jour une table mysql.
Je vous rassure, le titre est juste destiné à attirer ici les brebis égarées. UPDATE marche, si j’ai persévéré c’est que j’ai toujours fini par réussir.
J’utilise souvent UPDATE pour mettre à jour des tables avec de très nombreux champs (en général tous mes champs sont modifiables).
Si vous avez des problèmes avec UPDATE, commencez par vérifier soigneusement les noms de vos champs, les espaces, les majuscules, etc… Tout ceci doit être parfaitement cohérent entre la table MYSQL et les diverses instructions php.
On peut très bien faire UPDATE d’un seul champ à la fois, cela vous permettra de vérifier une fois pour toute que UPDATE fonctionne, et de tester progressivement où est le problème.
J’ai si souvent perdu un après-midi pour un guillemet manquant !
Syntaxe UPDATE

$query= »UPDATE Table SET Champ=’$Champ’ WHERE id=$id »;

Autres vérifications :

  • être bien connecté à la table
  • le nom de la table
  • le nom de la base de données tant qu’à faire
  • que tous les paramètres que l’on veut mettre à jour ont bien été passés dans le fichier php

$Champ=$_POST[‘Champ’];

  • et puisqu’on en est là, que l’on a bien form method=’post’ (et non pas ‘get’ n’est-ce-pas ?)
  • que tous les champs du formulaire que l’on poste sont bien les mêmes que ceux qu’on veut mettre à jour, ET que ceux de la table qu’on a créée.

Le plus simple pour vérifier le passage des paramètres, c’est de faire
echo $Champ;
Petit bug rencontré récemment, mes echo ne s’affichent pas, il me faut prévoir un affichage en gras pour les faire apparaître.
J’en ai d’autres à votre service des petits bugs que l’on n’apprend qu’avec l’expérience.
Etre cohérent et ordonné, c’est probablement le B A/BA pour les informaticiens, mais pas forcément pour ceux dont coder est un hobby !
Allez, puisque j’y suis, je vous livre ma méthode pour mettre à jour de nombreux champs et de nombreuses lignes d’une immense table.

for($z=$zmin;$z<$zmax;$z++)
{
$query="UPDATE $table SET Champ='$Champ[$z]' WHERE id=$z";
$result=mysql_query($query);
}