Tableau Array et variable dynamique

Résolu
Biguiz -  
kij_82 Messages postés 4260 Statut Contributeur -
Bonjour à tous,
Voici mon problème : j'ai crée un tableau Array comme suivant :

$type = array('H'=>'Hotel', 'G'=>'Gite', 'C'=>'Camping', 'CH'=>'Chambres d\'hotes', 'R'=>'Restauration traditionnel', 'RR'=>'Restauration rapide', 'M'=>'Musée', 'S'=>'Site touristique', 'A'=>'Artisannat local', 'TF'=>'Randonnée fluviale', 'CV'=>'Centre équestre', 'SA'=>'Sports aériens', 'SM'=>'Sports mécaniques', 'SN'=>'Sports nautiques', 'L'=>'Loisir');

Je souhaite afficher sur ma page les produits de ma BDD avec donc la catégorie où ils appartiennent

print utf8_encode("$Ligne[nom] - $type[$Ligne[categorie]]";)

A l'affichage je veux que cela affiche par exemple : "Domaine Commentçamarche - Chambre d'hotes".
Or avec l'écriture dans le print, la page bloque et ne s'ouvre pas. Par contre si par exemple je remplace $Ligne[categorie] par G ou C etc, cela m'affiche bien la page avec le type d'activité.

Merci par avance de votre aide !
A voir également:

6 réponses

kij_82 Messages postés 4260 Statut Contributeur 857
 
Bonjour,

Attention ! Tu as marqué : $Ligne[categorie]. J'imagine que $Ligne fait référence au résultat d'une requête SQL sur ta base (?), si oui il ne faut pas mettre entre cotte/doubles cottes comme ceci : $Ligne["categorie"] ?

Sinon la question à se poser est : qu'ais-je dans ma variable $Ligne["categorie"]. Si ca fonctionne en remplaçant $Ligne["categorie"] par "G", c'est qu'il y a un souci au niveau de $Ligne["categorie"]
0
Biguiz
 
J'avais déjà essayé avec les doubles quotes et le résultat est identique.
Pourtant, si j'écris $Ligne[categorie] au lieu de $type[$Ligne[categorie]], cela m'affiche bien la valeur correspondante (à savoir C, CH ou G,etc) à chaque nom...

Le soucis c'est que dès que je place $Ligne[categorie] comme valeur de $type, PHP ne me l'interprète plus et je n'ai donc pas la valeur correspondante à l'attribut qui s'affiche (par exemple, si c'est "H" ça m'affiche "Hotel"). Je suppose que le problème vient d'un soucis d'un syntaxe, mais lequel... ?
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
print utf8_encode("$Ligne[nom] - $type[$Ligne[categorie]]";) 


Le ';' n'est pas au bout endroit déjà, je ne sais pas si c'est une faute de recopie ou non ?

Sinon est-ce que tu peux essayer avec cette syntaxe :
print utf8_encode($Ligne[nom]." - ".$type[$Ligne['categorie']]); 

0
Biguiz
 
Toujours le même résultat, même en remplaçant les quotes par des doubles quotes ou en les enlevant selon ton code, et en essayant plusieurs possibilités de syntaxe...

Pour le ";" c'est bien une erreur de saisie de ma part.
0

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

Posez votre question
Biguiz
 
Bon ben j'ai trouvé !!!

print utf8_encode("$Ligne[nom] - ".$type[$Ligne[categorie]]."
");

Merci de ton aide ;)
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Simplement le "" à la fin qui change tout ?
0
Biguiz
 
C'est le point et la double quote qui changent tout : ".CODE."

Ah les mystères du PHP...
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Ca oui c'est toujours la syntaxe que j'emploie, mais c'est déjà ce que j'avais donné plus haut à la différence que je n'avais pas mis ."" à la fin. Je suis étonné que cela change quelque chose... enfin le principal c'est que c'est résolu :D
0