[RESOLU] Concatener le nom d'une variable avec le contenu d'une autre

Eléphant du PHP | 51 Messages

03 août 2021, 09:31

Bonjour à tous je requiert votre aide

voilà mon code

Code : Tout sélectionner

echo htmlspecialchars($row['variable_.1']);
Ca fonctionne pas de souci
Maintenant j'aimerai que le 1 ne soit plus inscrit en dur mais contenu dans une variable que je pourrai faire évoluer

j'ai essayé

Code : Tout sélectionner

echo htmlspecialchars($row['conscience_.$valeur_heure']);

Code : Tout sélectionner

echo htmlspecialchars($row['conscience_.'_'.$valeur_heure']);
Mais ca ne fonctionne pas :(

pourtant ma $valeur_heure renvoit bien 1 :)

Merci de votre aide les copains :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

03 août 2021, 10:13

A priori un truc comme ça :
echo htmlspecialchars($row['conscience_.'.$valeur_heure]);
A noter toutefois, que la bonne pratique est en général d'utiliser un tableau à 2 dimensions, plutôt que de concaténer des noms de variables.
Par exemple : $row['conscience'][$valeur_heure]
Mais tout dépend de l'organisation de ton code.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 51 Messages

03 août 2021, 11:19

Merci je progresse j'ai ce code

Code : Tout sélectionner

<?php echo htmlspecialchars($row['conscience_.'.$valeur_heure]); ?>
qui m'appelle bien le champs conscience_1 mais bizarrement j'ai une erreur Undefined array key alors que si je rentre la valeur en dur ca passe niquel...

J'y perd mon latin pour le coup .

ynx
Mammouth du PHP | 586 Messages

03 août 2021, 11:33

Bonjour,

Es tu sûr que le message d'erreur Undefined array key provient de cette ligne de code et pas d'une autre ligne ?

Tu peux éventuellement vérifier que la variable existe avec la fonction isset() avant de l'afficher :
echo isset($row['conscience_.' . $valeur_heure]) ? htmlspecialchars($row['conscience_.'.$valeur_heure]) : 'La variable n\'existe pas';

Eléphant du PHP | 51 Messages

03 août 2021, 21:44

Ca ne passait toujours pas.
J'ai donc trouvé une solution

Code : Tout sélectionner

$valeur='2'; echo $valeur; $conscience_cont='truc_'; $conscience_cont=$conscience_cont.$valeur_heure;

Code : Tout sélectionner

<?php echo htmlspecialchars($row[$conscience_cont]); ?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

04 août 2021, 10:12

Du coup ça veut dire que ton nom de variable n'était pas variable_.1 mais variable_1 (sans le point) contrairement a ce qui est indiqué dans ton 1er message ;-)

Et donc ça aurait donné ce code là :
echo htmlspecialchars($row['conscience_'.$valeur_heure]);
Quand tout le reste a échoué, lisez le mode d'emploi...