Inserer une Variable dans une table mysql

Répondre
plc2k
le 01/09/2004 à 13:04
plc2k
Bonjour,
voila mon probleme, j'insere une ligne de texte dans un champ varchar ou blob :
votre maison est $mavar

$mavar n'est pas remplacé, donc mysql stock BIEN (car c'est voulu) "..est $mavar"

lorsque je fais une requete mysql pour recuperer cet enregistrement,
je recupere bien :

votre maison est $mavar
(qui correspond à $texte)

le probleme c'est qu'a ce momment la, dans mon script $mavar = belle

et si je fais un echo $texte, il me remplace pas $mavar par sa valeur ..

il ecrit donc votre maison est $mavar au lieu de :
votre maison est belle.

Pourtant, si je fais la meme chose en mettant $test dans un fichier de conf, et que je fais un include, la tout marche bien ...

Quelqu'un a une idée ? je veux stocjer un nom de variable dans ma base et le recuperer par la suite et que celui ci soit remplacé par sa valeur ..

Merci d'avance
BornToBe
le 01/09/2004 à 14:42
BornToBe
Une idée me traverse l'esprit, mais bon, comme tu as peut-être pu le voir précédemment sur ce forum, je suis pas une foudre de guerre en PHP/MySQL...
Enfin, voilà à quoi j'ai pensé:
tu stockes dans ta base de données une chaîne de caractères qui correspond à la phrase que tu veux mettre mais avec la syntaxe que tu devrais utiliser en PHP. Comme ça, après, une fois que tu récupère cette valeur, tu la place dans un echo et peut-être que ce sera interprêté comme si c'était écrit en dur sur ta page.

BTB
Nì heolas go haontìos
BornToBe
le 01/09/2004 à 14:44
BornToBe
Euh... Non, je viens de me rendre compte que c'est justement ce que tu as essayé. Désolé.smiley

BTB
Nì heolas go haontìos
BornToBe
le 01/09/2004 à 14:46
BornToBe
Quoi que...
Si tu mets votre maison est'.$mavar., ça peut peut-être marcher...smiley

BTB
Nì heolas go haontìos
Sedilbur
le 01/09/2004 à 16:26
Sedilbur
tu stokes 'votre maison est %s'
ensuite

$mavar = 'belle';
sprintf($data['texte'], $mavar);

M'enfin avec ça tu n'es même plus obliger de stoker la phrase dans une db...
plc2k
le 01/09/2004 à 18:39
plc2k
BornToBe : j'ai essayé ca avec les . . ca marche pas ...

Sedilbur : jai rien compris 8-) moi je veux stocker dans une db c'est une obligation.
mojorisin
le 01/09/2004 à 19:53
mojorisin
Passe ta variable entre guillement simple, elle ne sera pas interpolée.
'$mavar'
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
Sedilbur
le 01/09/2004 à 19:59
Sedilbur
arf...
C'est simple tu stockes dans ta db la phrase :
votre maison est %s


Ensuite tu récupères cette phrase avec:
$data = mysql_fetch_array($res);


ta phrase est donc stocke maintenant dans(je ne connait pas le champ exact):
$data['phrase'];


maintenant dans ton code tu déclares ta variable mavar quelque par on a donc:
$mavar = 'belle';


ensuite sprintf:
//affichera 'votre maison est belle'
sprintf($data['phrase'], $mavar);


Si avec ça tu n'as toujours pas compris et bien je ne pourait être plus explicite.
En espérant t'avoir aidé...
plc2k
le 02/09/2004 à 15:24
plc2k
je comprend mais un ami ma donné une methode meilleur qui remplace d'un coup toutes les variables d'une variable extraite d'une requete sql, à base de regexp. ça marche impec.
BornToBe
le 02/09/2004 à 16:03
BornToBe
Ben montre comment t'as fait, histoire qu'on sache nous aussi... Enfin, en tous cas, je parle au moins pour moi...smiley

BTB
Nì heolas go haontìos
Répondre
LoadingChargement en cours