Nils Posté 5 Février 2005 Posté 5 Février 2005 bonjour, Je voudrais savoir s'il est possible de passer une variable de session dans une requète mysql ? ligne qui marche : $result = mysql_query("SELECT $email FROM qui_reserve") ligne qui ne marche pas : $result = mysql_query("SELECT $_SESSION['email'] FROM qui_reserve") peut-on passer une variable $_SESSION dans une requète mysql ? merci. Nils.
Nils Posté 5 Février 2005 Auteur Posté 5 Février 2005 Bon, ok, alors y aurait-il une erreur dans la ligne suivante ? pour quelle ne marche pas ? $result = mysql_query("SELECT $_SESSION['email'] FROM qui_reserve"); merci. nils.
petit-ourson Posté 5 Février 2005 Posté 5 Février 2005 "$_SESSION['email']" est bien un champ de "qui_reserve" ??
Anonymus Posté 5 Février 2005 Posté 5 Février 2005 Tu veux quel champ de la table qui_reserve ? En fait, lorsque tu mets $_SESSION['email'], ca te renvoie une donnée. C'est cette donnée qui doit correspondre au nom de la table. Si ca te renvoie une adresse mail, ca ne peut marcher.
Nils Posté 5 Février 2005 Auteur Posté 5 Février 2005 re, écoutes, j'ai relu tout ça, et ai mélangé trop de chose. Je suis en train de mettre de l'ordre ... Et je travail sur la structure, qui ($_SESSION['var']) est présent quand ... etc. Et comme je butte sur pleins de chose, ça ralenti tout ! En tout cas, oui, les variables de session marche dans une requète. (je ne doutais pas de ton info, mais il fallait que je la fasse marcher !) Comme je n'ai pas eu de formation PHP, je n'ai pas les bons automatismes et je galère pas mal ... encore merci. à plus. Nils.
petit-ourson Posté 5 Février 2005 Posté 5 Février 2005 Rien compris mais bon si tu as pu trouver ton bonheur ici, c'est le principal.
Nils Posté 5 Février 2005 Auteur Posté 5 Février 2005 moi non plus j'y comprends plus rien ! un coup ça marche, un coup ça marche plus. Impossible d'avoir un truc carré ! j'espère qu'à la soirée du 26, qq pourra m'éclaircir tout ça de vive voix ... Les variables de session appelées dans des pages appelées par des <balises> ou par des include_once(). à+, Nils.
bigornot Posté 6 Février 2005 Posté 6 Février 2005 Je pense que ce qu'il te faut, c'est plus un WHERE, non ?
Dan Posté 6 Février 2005 Posté 6 Février 2005 Nils, Je pense que la soirée du 26 ne va pas servir à faire des cours de php Qu'as-tu comme contenu de la variable $_SESSION['email'] ? S'il s'agit d'autre chose qu'un champ de la table, cela ne pourra pas marcher. Il FAUT qu'à cet endroit de la requête select le nom d'un ou plusieurs champs de la table apparaissent , comme dans: select champ1, champ2,..., champn from table where [condition]..... Dan PS: merci d'éviter les double interlignes systématiques dans tes posts, ils rendent le texte difficile à lire.
Nils Posté 6 Février 2005 Auteur Posté 6 Février 2005 Dan, Tu as bien raison ! Le 26 n'est pas là pour être un cours, on est bien d'accord !!! (Mais des fois on est tellement perdu que ...) Bon, pour les sauts de ligne, c'est vrai c'est une mauvaise habitude que j'ai, toujours envie que ce soit lisible, du coup, j'arrive au contraire de l'effet désiré. Bon, sinon, j'ai mélangé beaucoup trop de choses dans ma petite tête à un moment donné. Et effectivement, ma requète sql, après relecture, ne ressemblait plus à rien ! Enfin, maintenant, ça commence à être plus propre et à fonctionner. Pourvu que ça dure. Ces dernières semaines j'ai cummulé les problèmes et difficultés (hd HS, MS en vrac, alors passé sous Linux que je maîtrise pas encore etc ...) Mais bon, tant qu'il y a du code, ya de l'espoir .... (C'est plus lisible ? C'est à dire qu'à chaque fois que je change de thème, je saute une ligne, je dois sûrement parler de trop de trucs à la fois !) à bientôt. Nils.
Nils Posté 7 Février 2005 Auteur Posté 7 Février 2005 re, je reviens avec mon problème de syntaxe dans une fonction myslq_query() la ligne suivante fonctionne, alors que celle d'après non, qq a-t'il une idée ? mysql_query("SELECT date_resa, nom_passager, status FROM infos_resa WHERE num_enreg_QR='$autonum_QR'"); mysql_query("SELECT date_resa, nom_passager, status FROM infos_resa WHERE num_enreg_QR='$_SESSION['autonum_QR']'"); Il semble que mysql_query() n'arrive pas à interpréter ce que j'écris dans la 2ième ligne. Merci. Nils.
Anonymus Posté 7 Février 2005 Posté 7 Février 2005 Normal, il se mélange les pinceaux entre les ' et les " et le tableau, etc.. En gros, quand tu mets : name='$_SESSION['nom']' il ne sait pas s'il doit mettre le résultat de $_SESSION, soit Array, ce qui donnerait : name='Array['nom']', ou s'il doit trouver la variable correspondant à $_SESSION['nom'] Bref, en gros, il faut mettre : mysql_query("SELECT date_resa, nom_passager, status FROM infos_resa WHERE num_enreg_QR='".$_SESSION['autonum_QR']."'");
Nils Posté 7 Février 2005 Auteur Posté 7 Février 2005 Merci Nico, pourquoi faut-il des . entre les " ? il me semble que ça sert à concaténer, mais quoi ici ? Une autre question du même acabi, j'ai un fichier que j'appelle par un include_once() au début de mon site, il contient : define ('BASE', 'resa_fls'); après l'avoir inclu une fois (au début), je fais appel à une fonction qui contient: mysql_select_db(BASE); qui répond : no database selected, un echo BASE; ne donne rien non plus (=> BASE et pas resa_fls). Et pourtant j'ai lu que les constantes étaient accessibles tout le temps. Si tu peux me dire comment utiliser les constantes dans des fonctions mysql (ou ailleurs) ? (j'ai vu sur un autre forum qq qui utlisait des ` (quotes inverses) ,est-ce là la solution ? Merci, Nils.
martin Posté 7 Février 2005 Posté 7 Février 2005 Tout à fai d'accord avec Anonymus. Pour ce qui est de la concaténation, cela permet d'inclure une chaine à la suite d'une autre. mais dans ce cas pas besoin d'échapper cetains caractères. Alors que si ta variable est inserée dans une chaine, elle sera traitée, et si ele contient des quotes ou double quotes, cela risque de poser problème.
Anonymus Posté 8 Février 2005 Posté 8 Février 2005 Pour ce qui est de ta constante, tu devrais essayer, juste après l'appel à la fonction define, un echo. Ca doit donner : define('BASE','resa_fls');echo BASE; Si ca ne marche pas, essaies de voir si l'echo marche. echo" Constante BASE :".BASE."."; Ca doit afficher Constante BASE :resa_fls. Si tu n'as pas cette ligne, c'est que la constante ne s'affiche pas. Si tu n'as pas au moins cette ligne : Constante :. cela signifie que la fonction n'est pas prise en compte. Ca peut etre du à plusieurs raisons : - on croit qu'il y a un include, mais il n'y en a pas, - la fonction est en commentaires, exemple : /* define ('BASE','resa_fls'); */ - il y a une gestion des 'buffers', avec des fonctions telles que 'flush', etc.. qui font que l'affichage est retardé, mais.. annulé avant d'être envoyé au navigateur, - autres (ca peut venir de pas mal d'autres choses... ) Mets des 'espions', des 'témoins', qui affichent la variable un peu plus loin, etc.. pour voir quels fichiers sont appelés. Exemple : echo" Le programme passe par le fichier connexion.php"; que tu mets au début du fichier inclus, et qui te permet de savoir que le fichier est bien inclus.. Le mieux étant encore cette solution : echo"<br> Le programme passe par le fichier connexion.php";die(""); qui arrète l'execution du programme, et évite les problèmes de <div> hidden, les problèmes d'affichage retardé avec flush, etc.. Nico.
Nils Posté 8 Février 2005 Auteur Posté 8 Février 2005 encore ... merci ! Bon, en fait, j'ai résolu mon problème entre temps (en mettant des echos partout comme tu me l'as suggéré !), en fait, je ne sais pas s'il est résolu, mais la parade à été de mettre au début de mon fichier de fonctions, include_once('mes_constantes.php'), et avec ça, ça marche, est-ce une parade ou une correction, je ne sais pas ... Mais la syntaxe était finalement bonne, il manquait l'include(mes_constantes), ce qui est curieux c'est que j'ai lu que les constantes devaient pouvoir être lues tout le long du code ... mais en fait, je ne sais pas bien ce que cela veut dire ? Quand est-ce qu'il s'arrête ? Quand on quitte IE, ou quand on appelle une autre page par de l'html ? Merci pour le die(""); c'est une bonne idée ! à+, Nils.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant