Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/03/2007, 16h38   #1
Membre du Club
 
Inscription : février 2007
Messages : 271
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 271
Points : 50
Points : 50
Par défaut [SYNTAXE] Executer Requete avec variable (cookie)

Bonjour

A la suite de l'authentification , comment fais t'on pour afficher le nom et le prénom de l'utilisateur avec mySQL (ex : Bievenue NOM _ PRENOM)

Dans ma table user, un identifiant correspond à un nom et un prénom et il possède un mot de passe bien évidemment.

On est obliger d'utiliser les cookies pour faire ça ?

J'ai fait ceci , je n'ai pas obtenu de message d'erreur.

Cependant , il ne m'affiches rien contrairement a quand je fais un "echo ok" s'affiche.


Voila mon code :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
?php
 
		$id_ag=$_COOKIE["id"];
		$connexion=mysql_connect('localhost','root','-') OR die ('impossible de se connecter, veuillez re-essayer');
		$db = mysql_select_db('-', $connexion) OR die ('La base de données ne peut pas être sélectionnée');
 
 
 
			$result='SELECT nom_ag FROM agent WHERE id_ag=".$id_ag." ';
 
		$req = mysql_query($result) OR die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
		$row=mysql_fetch_row($req);
		echo $row[0];
 
 
 
		?>
Cordialement,
Kenshin86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 17h45   #2
Membre à l'essai
 
Inscription : avril 2004
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 19
Points : 20
Points : 20
ca doit etre un probleme avec la concatenation.

essaye ca:
Code :
1
2
 
$result='SELECT nom_ag FROM agent WHERE id_ag='.$id_ag;
greffzion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 17h53   #3
Membre du Club
 
Inscription : février 2007
Messages : 271
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 271
Points : 50
Points : 50
J'ai essayé ce que tu m'as dis et ça me me met erreur SQL.

Je crois qu'après le where , il faut toujours mettre le double quote ->

where=" "
Kenshin86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 14h39   #4
Membre à l'essai
 
Inscription : mars 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 23
Points : 21
Points : 21
Oui alors essaie avec les guillemets et en sortant la variable de la chaine de caractère::
Code :
1
2
 
$result='SELECT nom_ag FROM agent WHERE id_ag="'. $id_ag .'"';
natcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 18h07   #5
Membre du Club
 
Inscription : février 2007
Messages : 271
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 271
Points : 50
Points : 50
Donc , j'ai fait avant :
$cook="$_COOKIE[id]";
puis un echo $cook; ou cook est l'identifiant.

"select... where id_ag= '$cook' "


Cela ne m'affiches rien. et quand je laisse une requete simple : select * from agent; il m'affiches mes infos mais une fois ré-authentifier ; il garde le meme nom

ou encore.

je fais $cook="$_COOKIE["id"]"

puis un "select... where id_ag=" ' .$cook. ' " "

je n'ai rien d'afficher.Mais je n'ai pas d'erreur
Kenshin86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 19h30   #6
Membre du Club
 
Inscription : février 2007
Messages : 271
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 271
Points : 50
Points : 50
Il y a personne qui connait la syntaxte pour afficher la valeur d'un cookie dans une requete ? ?
Kenshin86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 20h03   #7
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 59
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 59
Points : 13
Points : 13
Tu met Je mettrais plutôt : et si tu fais un "echo $result;" ça te donne quoi ?

Sinon
Code :
$result="SELECT nom_ag FROM agent WHERE id_ag='$cook' ";
devrait marcher, si ton cookie est bien renseigné...
Pokerstar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 20h09   #8
Membre du Club
 
Inscription : février 2007
Messages : 271
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 271
Points : 50
Points : 50
Oui , il faut noter qu'avec la 1ere solution. Ca fonctionnes MAIS que pour UN user.

Concernant la seconde solution. J'ai essayé également. Cela ne m'affiche rien.

Meme quand je fais : $result="select nom_ag from agent where id_ag='4' ";

et puis un echo $result; sur ma page j'ai :
select nom_ag from agent where id_ag='4' et un echo $query -> Ressource id #3

Et quand plus bas , je fais mon echo $row[0]; j'ai bien affiché la solution.
Mais c'est vrai que c'est pas normal , pourquoi ne m'affiche t'il pas le résultat de ma requete ?

Sinon , ce que tu proposes je l'ai déja essayé. il n'affiche rien dans ma page alors que plus haut quand je fais un echo $cook. il me l'affiche
Kenshin86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 20h50   #9
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 59
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 59
Points : 13
Points : 13
Citation:
Et quand plus bas , je fais mon echo $row[0]; j'ai bien affiché la solution.
Mais c'est vrai que c'est pas normal , pourquoi ne m'affiche t'il pas le résultat de ma requete ?
Là je comprends pas , c'est justement $row[0] le résultat de ta requête, qu'est-ce que tu veux de + ?

Citation:
Oui , il faut noter qu'avec la 1ere solution. Ca fonctionnes MAIS que pour UN user.
Comment ça pour "un" user ?
Pokerstar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 20h57   #10
Membre du Club
 
Inscription : février 2007
Messages : 271
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 271
Points : 50
Points : 50
Je reprends encore.

Lorsque je fais dans ma requete : select... where id=4

Mes echo fonctionnes.

quand je fais select... where id=$cook

je n'ai pas de message d'erreur mais il ne m'affiches rien.

A noter que $cook = $_COOKIE["id"]

PS : quand je fais $cook2="2" et dans la requete select...where id=cook2

Alors la , tout fonctionnes.
Kenshin86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 21h07   #11
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 59
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 59
Points : 13
Points : 13
Je viens de tester ce bout de code, ça fonctionne :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
$test = 2;
setcookie("id", $test);
$id_ag=$_COOKIE["id"];
 
$link = mysql_connect("localhost", "root", "") OR die("Problème de connexion à la base de données MySQL.");
mysql_select_db("essai") OR die ("Problème de connexion à la base de données MySQL.");
 
$result="SELECT nom_ag FROM agent WHERE id_ag='$id_ag'";
 
$req = mysql_query($result) OR die('Erreur SQL !<br>'.$result.'<br>'.mysql_error());
$row=mysql_fetch_row($req);
?>
<html>
<body>
Bonjour <?=$row[0]?> !
</body>
</html>
Pokerstar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 21h11   #12
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 59
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 59
Points : 13
Points : 13
T'as essayé $cook = $HTTP_COOKIE_VARS['id']; ?
$_COOKIE ne fonctionne que sur PHP 4.1.0 ou plus.
Pokerstar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 21h24   #13
Membre du Club
 
Inscription : février 2007
Messages : 271
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 271
Points : 50
Points : 50
J'ai PHP 5 donc je penses que ça devrait fonctionner.

Sinon , comment as tu pu tester ? tu as une base avec les infos ? parce que moi ça ne marches pas.

Essaye ça :
Code :
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
30
<?php
 
 
		$cook=$_COOKIE["id"]; 
 
 
		echo "1: " .$cook;  echo "<br>  <br>   ";
 
 
 
 
		$connexion=mysql_connect('localhost','root','-') OR die ('impossible de se connecter, veuillez re-essayer');
		$db = mysql_select_db('intranet', $connexion) OR die ('La base de données ne peut pas être sélectionnée');
 
 
 
 
 
		$req="SELECT nom_ag,pren_ag FROM agent where id_ag='4'";
		$query = mysql_query($req) OR die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());		
 
		echo $data["nom_ag"];
		$row = mysql_fetch_row($query);
 
		echo $row[0];
 
 
 
 
		?>
C'est juste un petit détail. Mais qu'est ce que je galères...
Kenshin86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 22h09   #14
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
J'ai pas compris ton probleme. Si tu veux concatener le nom et prenom
CONCATSW(,,,) fonction mysql
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 22h10   #15
Membre du Club
 
Inscription : février 2007
Messages : 271
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 271
Points : 50
Points : 50
J'ai trouvé !!!

la syntaxe correcte est :


Code :
"Select ... where champ=' ".$cook." ' ";
J'ai fait ça pour éclaircir le code concernant les "quote" et les "double quote"

Il y n'a pas d'espace !
Kenshin86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 22h17   #16
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
J'ai un doute car il y a un espace avant et après. A moin que dans ton enregistrement c'est ainsi.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 22h21   #17
Membre du Club
 
Inscription : février 2007
Messages : 271
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 271
Points : 50
Points : 50
Oui tu as raison !

Il faut supprimer les espaces sinon ça ne marches pas.


Je l'ai mis comme ça pour éclaircir le code concernant les guillemets.
Kenshin86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2007, 07h06   #18
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 59
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 59
Points : 13
Points : 13
OK très bien si ça marche

Code :
Sinon , comment AS tu pu tester ? tu AS une base avec les infos ? parce que moi ça ne marches pas.
J'ai recréé rapidement 1 table agent sur mon serveur local.
Je comprends pas que tu n'es pas réussi avec ma version, je l'ai vue fonctionner
Pokerstar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h35.


 
 
 
 
Partenaires

Hébergement Web