Que faire quand PHP ne marche pas ?

J’ai perdu de précieuses journées à essayer de passer un tableau en paramètre d’une page à l’autre.

L’avantage avec la programmation, c’est qu’un jour, ça finit par marcher.

J’ai un problème avec les tableaux associatifs, avec la portée des variables, il faudrait que je me penche sérieusement sur le sujet, mais là je n’ai pas eu besoin puisque (presque) tout a fini par marcher.

Il faudrait tenir le journal de mes tâtonnements pour ne pas refaire les mêmes erreurs.

Mais au moment de tenir le journal c’est parfois l’écoeurement.

Donc j’essayais de passer un tableau associatif en paramètre, à la maison et au travail. Sans succès, je revenais du travail en concluant que ce n’était peut-être pas possible quand… ô surprise, je m’aperçois que j’avais réussi ce cas de figure juste le week-end précédent à la maison.

Bon, il peut y avoir des problèmes de compatibilité de php. Que faire quand on recopie un code qui a marché et qu’il ne marche pas dans la nouvelle configuration ?

Je vous passe toutes les péripéties, mais il convient de se rappeler les résolutions suivantes :

  1. Etre très soigneux dans le nom des champs de la table Mysql (attention majuscules-minuscules)
  2. Pour la commande « Insert into $table values… », dans mon expérience, il faut lister sans exception tous les champs de la table, même si on ne les utilise pas tous.
  3. Avoir conscience que Insert et Update ne fonctionnent pas de la même façon (éviter de mélanger un insert et un update dans le même formulaire !!!).
  4. Ne pas compliquer les choses, c’est à dire que tant que ça ne marche pas, se dispenser des tests sur les paramètres, ne pas rajouter de if-else, ni de mot de passe.
  5. La solution miracle peut être simplement de réécrire tout le code de zéro. Il me semble par exemple que une ligne sautée de trop peut être fatale. J’ai aussi l’exemple d’avoir gâché tout un week-end à cause d’un guillemet mal ouvert ou fermé.
  6. Ne pas s’acharner, aller faire un tour, boire un thé, prendre une pause, et le problème sur lequel on est bloqué se résoudra mystérieusement (facile à dire cependant, j’ai du mal à me décoller !)
  7. Il n’est pas nécessaire de déclarer le tableau. Un signe qu’on est sur la bonne voie, c’est quand on fait afficher $tableau[$id] et qu’on tombe sur Array. Toutes les données du tableau passent toutes seules d’un formulaire à la page suivante si on passe bien en paramètre $_POST[tableau]=$tableau.
  8. Quant à l’imbrication d’un tableau et des données d’une table Mysql, il faut procéder par ordre (passer les $tableau[$id] et ensuite interroger la table avec id).
  9. Les pros me conseilleront d’aller suivre des cours, et je me suis vraiment posé la question ces deux dernières semaines, mais bon, je reste une dilettante.
  10. C’est en se trompant qu’on apprend.