FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Requète sql, variable session
 

Requète sql, variable session

Il y a 259 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Requète sql, variable session
 
guich
Plus d'informations

Coucou  :)  
 
Bonjour à tous, voila j'ai quelques questions, et comme je ne trouve pas de réponses  :fou: je viens demander aux pro ;)
 
Première question, lorsque l'on fait une requète sql, elle nous retourne tout un tas d'informations, qu'il faut ensuite trier à l'aide d'un tableau. Est-ce que l'on obligé de passer par un tableau ? Je m'explique, si l'on est sûr que la requète ne retourne qu'un seul élèment, le tableau ne sert donc a rien !

Code :
  1. mysql_fetch_array($requete) ...


Mais si $requete = 3, soit qu'un seul élèment, on ne peut pas faire :

Code :
  1. $req = mysql_query("blabla" );
  2. echo $req;


 
Bon bref, maintenan deuxième question :)
Comment utiliser les variables session dans une requète ?

Code :
  1. $req = mysql_query("SELECT * FROM toto WHERE toto='$_SESSION['tonton']'" );


La requète au dessus ne fonctionne pas (du moins chez moi :(). Il faut que je passe par des variables intermédiaires ...
 
Merci des réponses futures :)
Guich

guich
Plus d'informations

Une autre petite question aussi ...
Je récupère une variable avec POST, tel que :

Code :
  1. <form> ....
  2. ...
  3. ... name="toto" value="toto &agrave;  ..." ....
  4. </form>
  5. ---------------------------------------------------------
  6. $toto = $_PPOST['toto'];
  7. if ($toto == 'toto &agrave; ...')
  8. echo $toto;


 
Seulement l'accent ne passe pas correctement ! J'ai essayer toutes les combinaisons, mais en vain :( Et surtout, je ne veut pas passer par une fonction qui vire tout les accents, les slash, les ... car je veux pouvoir afficher mes variables avec leurs caractères d'origines.  
Merci

G.M.G.V.S.O.
Profil : Modo matériel
Plus d'informations

1/ Je pense que tu peux. Mais pas directement comme ça, sauf que là tout de suite je ne retrouves plus comment :'(
 
2/

Code :
  1. $req = mysql_query("SELECT * FROM toto WHERE toto=".$_SESSION['tonton'] );


 
Devrait mieux marcher AMHA.
 
Pour ton pb ds ton formulaire par contre, "normalement" je dirais que le char HTML est transformé en "à" et passé en paramètre de la forme %xx
(et rassure moi, le PPOST c'est une faute de frappe dans ce topic et pas dans ton code ;))


---------------
SPAM & WAREZ = Ban!
Ultimate Boot CD | Memtest+
Mon bar préféré à Lyon ! | Bijoux Fantaisie de Créateur !
guich
Plus d'informations

Faute de frappe oui. Avec quoi comparer mes caractères spéciaux alors ? %xx ??
 
Edit  : Je rajoute que le pb avec les caractères n'est présent que lorsqu'ils sont transmis par la méthode POST. Ceci fonctionne trés bien néanmoins :

Code :
  1. $toto = "à";
  2. if ($toto == 'à')
  3. echo ....;


Message édité par guillaumec h le 17-12-2007 à 07:29:58

---------------
www.guich.fr
G.M.G.V.S.O.
Profil : Modo matériel
Plus d'informations

Oui logique :)
 
Affiche ta variable récupérée apres POST ... Je pense que ton "à" devient %E0 :)


---------------
SPAM & WAREZ = Ban!
Ultimate Boot CD | Memtest+
Mon bar préféré à Lyon ! | Bijoux Fantaisie de Créateur !
guich
Plus d'informations

Oui mais tu dois bien t'en douté que lorsque j'affiche ma variable POST, elle s'affiche après avoir été interprété, du coup je ne vois pas le %E0, mais le 'à' ... comment savoir la correspondance entre à et %E0 ?


---------------
www.guich.fr
G.M.G.V.S.O.
Profil : Modo matériel
Plus d'informations

Tu peux tout a fait l'afficher sans interpretation (enfin je pense)
 
Fais un bête

Code :
  1. print_r($_POST);

pour voir :)
 
Sinon "%E0" c'est simplement le code ascii de "à" en hexa...


---------------
SPAM & WAREZ = Ban!
Ultimate Boot CD | Memtest+
Mon bar préféré à Lyon ! | Bijoux Fantaisie de Créateur !
guich
Plus d'informations

L'interpretation est faite  :(
Pfff, j'ai essayer ut8_encode/decode ... de mettre ma balise meta en ut8   ... mais rien ne fonctionne. Ou alors, lorsque je recoi ma variable POST, je la decode en ut8, je la stock dans une variable SESSION, je la compare à une chaine de caractères  tel que "coucou à toi", là ça fonctionne. Pour la réafficher correctement j'utilise le encode_ut8, mais lorsque je change de page, mes variables SESSION ne s'affiche plus correctement, en faisait tjs le encode_ut8 :( jvais en devenir fou ! Rrrr Et pour une base de données, qui est en ut8, est-il necessaire d'achapper les caratères spéciaux ?


---------------
www.guich.fr
guich
Plus d'informations

Bon j'ai un peu avancé. J'ai enregistré et mis toutes mes pages en utf-8. Je ne fais donc plus le utf8_encode(...), mais conditions fonctionnent bien.

Code :
  1. $toto = $_POST['toto'];
  2. if ($toto == 'à')
  3. echo 'Ca fonctionne !';


j'ai donc crée une nouvelle base de données, mais cette fois-ci avec des champs en format utf8. J'ai donc des accents dans ma base. Lorsque je fais une recherche avec condition dans celle-ci, celà fonctionne trés bien  :

Code :
  1. $req = myql_query (SELECT * FROM toto WHERE toto='à')
  2. avec dans ma base, le caractère 'à' tel quel


Je peux donc récupérer les champs désirez, mais lorsque j'affiche mon 'à' récupéré de ma base, patatrac ! il me refou des signes bizarre ! Rrrr Même si ma page sur laquelle je l'affiche est bien codé et enregistré en utf8 ! A n'y rien comprendre dans tout ces formats !


---------------
www.guich.fr
G.M.G.V.S.O.
Profil : Modo matériel
Plus d'informations

Verifie que le header renvoie bien comme charset UTF8 :)
 
Au besoin rajoutes au tout début de chaques pages:
 

Code :
  1. <?PHP header('Content-Type: text/html; charset=UTF-8'); ?>


---------------
SPAM & WAREZ = Ban!
Ultimate Boot CD | Memtest+
Mon bar préféré à Lyon ! | Bijoux Fantaisie de Créateur !
Plus d'informations

Bonjour tout le monde !
 
Je m'adresse à vous car mes neurones refusent de fonctionner... :)
 
J'ai un pb sur une requete dans ma bdd...
 
J'explique :
 
Dans ma bdd, table "users", le pseudo est stocké dans "username" et le nom dans "name"
Les utilisateurs suivants sont enregistrés dans ma bdd :
- Le pseudo "Fab" appartenant à "Fabrice"
- Le pseudo "Titi" appartenant à "Thierry"  
 
"Fab" se connecte sur mon site ; (jusque là, c'est cool lol)
Je voudrais voir s'afficher "Bonjour Fabrice (Fab)" ; (idiot comme truc...)
 
Je fais donc un beau :

Code :
  1. <?
  2. $name = $db->get_sql_field("SELECT name FROM " . DB_PREFIX . "users" );
  3. ?>
  4. <?=$name;?>
  5. <b>
  6. (<?=$member_username; ?> )
  7. </b>


 
qui bien sur me renvoie un magnifique  
 
Bonjour Fabrice (Fab)  
 
EUREKA CA MARCHE !!!!
 
Et ben non... parce que si "Thierry" se connecte ça me met :
 
Bonjour Fabrice (Titi)
 
En clair, la requete me récupère toujours LA 1ERE LIGNE DE MA BASE DE DONNEES et je ne sais pas comment lui faire récupérer la bonne ligne par rapport à la personne connectée...
 
Je bug...
 
Je ne le précise pas : tout le monde aura compris que je débute en PHP lol
 
J'ai même essayé un beau
 

Code :
  1. $name = mysql_query("SELECT name FROM " . DB_PREFIX . "WHERE name=['$username']);


 
qui ne donne RIEN...
 
Merci pour votre aide précieuse !!


Message édité par alzeto le 24-07-2008 à 17:21:54
Plus d'informations

bon ben merci beaucoup pour votre aide, j'ai eu ma réponse sur un autre forum plus "vivant"...

zeb
Profil : Modérateur libre
Plus d'informations

Solution ?


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...

Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Requète sql, variable session
 

Annonces Google
Publicité
Les ressources relatives