Tableau Array et variable dynamique [Résolu/Fermé]

Signaler
-
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
-
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 !

6 réponses

Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
851
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"]
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... ?
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
851
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']]); 

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.
Bon ben j'ai trouvé !!!

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


Merci de ton aide ;)
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
851
Simplement le "" à la fin qui change tout ?
C'est le point et la double quote qui changent tout : ".CODE."

Ah les mystères du PHP...
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
851
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