[PHP/mySQL] afficher PHP dans champs mySQL

Fermé
otherwise01 - 5 mars 2008 à 12:58
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
- 8 mars 2008 à 21:48
Bonjour à tous,

Voilà en fait je souhaiterais effectuer:

Ma page.php

$ville="Paris";

SELECT xx FROM `yyy`;

Et xx contient

Bienvenue à <?php echo "$ville ?>.



Seulement ma requête affiche seulement Bienvenue à .

Comment faire ?

Merci

14 réponses

Thamior
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
47
5 mars 2008 à 13:00
Je modifierai ça :

Bienvenue à <?php echo "$ville ?>.

Par ça :

Bienvenue à <?php echo $ville ?>.
0
ça affiche toujours
Bienvenue a .
0
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
257
5 mars 2008 à 13:24
Bonjour, si j'ai bien compris, le champ de ta table contient du code PHP que tu voudrais exécuter ?

Alors la fonction eval() est faite pour toi : https://www.php.net/eval
0
Et quand je modifie encore mon enregistrement par : Bienvenue a <?php mixed eval( string $ville) ?>.

toujours pareil, ma page affiche "Bienvenue a."

Ma variable $ville est elle correcte puisque lorsque je saisi simplement "Bienvenue à <?php echo $ville; ?>" sur ma page ça s'affiche correctement...

Comment faire ... ?
0
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
257 > crosslink06
6 mars 2008 à 10:48
Bon alors, le mixed, c'est le type de retour dans la déclaration de la fonction par PHP, il ne faut pas le mettre.

Ensuite, pour utiliser eval() il y'a un exemple concret sur le site, qui correspond exactement à ton cas:

$ville = 'Paris';
$msg = 'Bienvenue à $ville.';
eval("$msg=\"$msg\"");
echo $msg;

Maintenant, si ton message vient directement de ta table SQL,
$ville = 'Paris';
eval("$msg=\"".$row['nom_colonne']."\" ");
echo $msg;

Il faudra par contre que tu retire les balises php dans ta base. Remplacer les valeurs du type "Bienvenue à <?php echo $ville; ?>" par "Bienvenue à $ville".
0
sfel
Messages postés
1640
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
15 juillet 2009
427
5 mars 2008 à 13:38
bonjour,

tu as tout simplement oublié un ; après le echo

<?php echo $ville; ?>.
0
C'est vrai j'avais oublié un ";".

J'ai modifié l'enregistrement : "Bienvenue a <?php echo $ville; ?>."

mais on m'affiche toujours "Bienvenue a." sur la page...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chico200987
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
146
6 mars 2008 à 00:52
Salut,

Comme tu peux le voir quand tu mets :

"Bienvenue a <?php echo $ville; ?>."

Tu obtiens :

"Bienvenue a."

Celà veut dire que dans $ville il n'y a rien du tout.

Hm, ta requête est censée faire quoi ? T'as pas fini ta phrase ^^
0
the_unknown
Messages postés
5
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
6 mars 2008
1
6 mars 2008 à 13:27
bonjour , :)

je pense que ca vous allez aidé :


$query = mysql_query("SELECT * FROM xxx");

$fetch = mysql_fetch_array($query)
echo "Bién venu à ".$fetch[hello];


merci,
0
Non vous n'avez pas compris, je souhaite afficher un champs de ma base de donnée qui contient du texte + une variable.

Pb : seul le texte s'affiche...
0
sfel
Messages postés
1640
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
15 juillet 2009
427
6 mars 2008 à 20:03
Il y a un truc que je comprends pas.

index.php

<?php
$ville = "paris";
?>

Bonjour, <br />
Bienvenue a <?php echo $ville; ?>.

ca ne marche pas ???
0
Non, en fait je souhaite executer une requete SQL qui contient des variables php, c'est ça mon problème.

Et à l'affichage j'ai soit que le texte soit le texte et $mavariable au lieu du texte et de la valeur de ma variable...
0
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
257
6 mars 2008 à 21:11
Essaye d'être un peu plus clair...

T'as des champs de ta base de données qui contiennent du code PHP que tu aimerais exécuter ?

Si c'est le cas, relis mon post plus haut.

Tu as une requête SQL qui dépend de paramètres qui sont stockés dans des variables PHP ?

Tu n'arrive pas à afficher le résultat d'une requête SQL (résultat qui ne contient PAS de PHP) ?
0
chico200987
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
146
7 mars 2008 à 10:22
Effectivement pas très clair du tout, tu affectes une variable, tu fais une requête dont on n'en voiis pas l'utilité puis tu nous dis que l'affichage ne marche pas O_o

Essaie de nous montrer le plus de code possible (utile) pour qu'on voit réellement de quoi on parle et exprime clairement ce que tu veux faire avec des exemples s'il te plaît car celà peut te sembler très clair pour toi mais pour nous, qui ne connaissons pas du tout ton sujet, on y comprend rien ^^
0
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
902
7 mars 2008 à 13:10
Bonjour,

Ne mets pas ton code php dans un champ de ta base mysql mais des valeurs que tu vas lire ensuite pour les afficher

ex si dans le champ ville de ta table test tu rentres Marseille


ensuite:

$query = mysql_query("SELECT * FROM test");

$fetch = mysql_fetch_array($query)
echo "Bien venue à ".$fetch['ville']; 

0
J'arrive à afficher une requete qui ne contient pas de variable.
Le problème :




dans mapage.php il y a

- ma variable : $ville = Marseille;
- je récupère le champs souhaité : SELECT champs from table
- j'affiche ce champs


et mon champs contient un registrement du type "Bienvenue à $ville"
mais au final, d'affiché j'ai simplement "Bienvenue à "



Merci
0
sfel
Messages postés
1640
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
15 juillet 2009
427
8 mars 2008 à 18:00
d'accord j'ai compris.

dans ta table, le premier enregistrement est :
"Bienvenue à $ville"

le second est :
"Vous êtes $nom"

le troisième est :
"Vous avez $age"

et tu veux que les $ville, $nom et $age soit considérées comme des variables et non pas simplement comme du texte.
0
Oui voilà. Quand j'affiche l'enregistrement de ma BDD, j'obtient seulement "Bienvenue à ". La variable $ville n'est pas prise en compte... Comment faire ?

Merci
0
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
902
8 mars 2008 à 20:41
parce que au moment de l'affichage php interprete $ville comme une variable et comme elle ne contient rienn il affiche seulement Bienvenue à

Comme je te disait dans mon précédent post, ton principe n'est pas bon, on ne met pas du php dans un champ de la table mais une valeur que l'on vient lire et afficher grâce à une commande php.
0
sfel
Messages postés
1640
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
15 juillet 2009
427
8 mars 2008 à 21:10
mais c'est justement ce qu'il veu que ca soit interprété comme une variable et surtout qu'il a fait
$ville = "marseille";
un peu plus haut...
0
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
902
8 mars 2008 à 21:48
Ha d'accord,

alors le $ doit gener au moment de la requette ou de l'array du fetch

il faut donc l'échapper par un \

mettre dans la table Bienvenue à \$ville

et au moment de l'affichage:

echo stripslashes($fetch[.......
0