Bonjour à tous, voila j'ai quelques questions, et comme je ne trouve pas de réponses 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 :
mysql_fetch_array($requete) ...
Mais si $requete = 3, soit qu'un seul élèment, on ne peut pas faire :
Code :
$req = mysql_query("blabla" );
echo $req;
Bon bref, maintenan deuxième question Comment utiliser les variables session dans une requète ?
Code :
$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 ...
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
1/ Je pense que tu peux. Mais pas directement comme ça, sauf que là tout de suite je ne retrouves plus comment
2/
Code :
$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 )
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 ?
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 ?
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 :
$toto = $_POST['toto'];
if ($toto == 'à')
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 :
$req = myql_query (SELECT * FROM toto WHERE toto='à')
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 !
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 :
<?
$name = $db->get_sql_field("SELECT name FROM " . DB_PREFIX . "users" );
?>
<?=$name;?>
<b>
(<?=$member_username; ?> )
</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 :
$name = mysql_query("SELECT name FROM " . DB_PREFIX . "WHERE name=['$username']);