Voici ce qu'il faut savoir sur les variables, je vais essayer de faire général.
1 ) Une variable est une zone mémoire qui contient une valeur;
2 ) Généralement, cette valeur a UN TYPE associé, qui permet de la manipuler. C'est ainsi que dans certains langages ( par exemple JavaScript ) on peut faire la différence entre une concaténation ( "a" + "b" ) et l'addition ( 1 + 2 ) : car l'opérateur + a été défini différement en fonction des types des opérandes.
3 ) La variable a UNE PORTEE. Cette portée, est soit défini par un mot clé, comme static ou global, ou bien elle est devinée à l'interpretation/compilation du code. Elle définie la visibilité des différentes zones du programme sur la variable.
4 ) La portée d'une variable s'etend dans un programme fait avec le même langage dans le même processus. En PHP par exemple, tu peux définir une variable sur la portée SESSION, et dans ton programme PHP tu la retrouveras; MySQL ne faisant pas partie du processus PHP, IL NE POURRA PAS lire directement la variable globale SESSION.
5 ) Pour que deux "programmes" ou deux "systèmes" puissent "partager" des variables, il faut les dupliquer; Ainsi, lorsque tu veux communiquer une variable de PHP vers JavaScript, il faut faire comme ceci :
<?php $maVariable = 128; echo( ' <script language="JavaScript">' ); echo( ' var maVariable = ' . $maVariable ); echo( ' </script>' ); ?>
Ceci a pour effet de DUPLIQUER la variable "maVariable" : elle sera présente en mémoire pour PHP ( tout du moins le temps d'évaluation de la page / fonction contenant cette variable ) donc COTE SERVEUR, et elle sera présente en mémoire, une fois que le navigateur aura interpreté le JavaScript, donc du COTE CLIENT.
6 ) Même chose dans le sens PHP et MySQL, sauf que dans MySQL on ne crée pas de variables en général; on ne fait que lui passer des requêtes.
Donc il faut utiliser la variable coté PHP, pour générer la requête que MySQL pourra comprendre et qu'il faudra lui passer :
$result = mysql_query( ' SELECT * FROM monTableau WHERE maVariable = ' . $maVariable , $linkDB )
Voila ce que je peux en dire, donc en synthèse :
- une variable est en mémoire et locale au programme qui se charge de l'accueillir;
- sauf bidouille, deux programmes ne sont pas fait pour partager une même zone mémoire, et donc ils ne partagent pas les mêmes variables : il faut donc dupliquer;
- Les applications ont des moyens de communiquer qui permettent de passer des valeurs entre elles; il faut connaitre ces moyens pour bien exploiter les possibilités de communication des outils que tu utilises.
- il faut bien que tu différencies les applications qui s'executent coté serveur ( PHP, MySQL ) et celles qui s'executent coté client ( JavaScript ). Ca t'évitera les confusions du type "ma variable est déclarée en PHP ou en JavaScript ?"
Partager