|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : octobre 2002 Messages : 42 ![]() |
Salut,
J'ai une requête toute simple : Select Champ1, Champ2 From table Je mets le résultat de cette requête dans un tableau $tableau. Pour afficher Champ 1 et Champ2, je dois faire : Code :
par exemple que $tableau[CHAMP1] me retourne la valeur. J'ai besoin de ça car j'utilise mon script avec plusieurs BDD et Oracle retourne les champs tout en majuscule contrairement à Mysql qui garde la bonne casse. Y a t il une solution au niveau config de PHP, car j'ai ce problème dans plein de page et je n'ai pas le temps de faire la modif pour chaque requête. Merci |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Inscription : décembre 2003 Messages : 3 717 ![]() |
il me semble que MySQL est assez permissif de ce coté là...
Essaie donc de tout coder comme tu le ferai pour oracle, et ca devrai passer (à tester tout de même, j'ai pas de easyPHP sous la main) |
|
|
00
|
|
|
#3 | ||
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Salut
À froid, je te propose un truc : dans ta boucle de récupération des données, recopie les champs dans un tableau associatif dont tu n'as que des indices que tu contrôles : Code :
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
||
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : octobre 2002 Messages : 42 ![]() |
merci, mais le problème c'est que je ne suis pas censé connaitre la casse des champs,
donc là tu les mets tous en minuscules, mais ça se trouve dans mon programme, les champs sont écrits différement, et je n'ai pas envie d'aller dans toutes les pages pour les modifier. par contre j'utilise ADODB donc je récupère le tableau à un seul endroit et c'est là qu'il faudrait faire quelque chose. |
|
|
00
|
|
|
#5 | |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Citation:
Si tu ne connais pas la casse du champ en cours d'utilisation, utilise à nouveau strtolower() et tu seras sorti d'affaire.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : octobre 2002 Messages : 42 ![]() |
pas de problème, je me suis peut être mal expliqué, en tout cas merci de te pencher sur mon problème,
dans ma table, j'ai Champ1, Champ2, en mysql, je les récupère tel quel sous oracle, ils deviennent CHAMP1, CHAMP2, dans mon code, quand je fais un echo, j'ai d'abord développé avec Mysql (j'utilisais pas Oracle), donc j'appelle $tableau[Champ1] avec un C majuscule et le reste en minuscule. Problème sous Oracle, ça ne retourne rien car le tableau est rempli avec CHAMP1. Je n'ai pas envie de toucher à mon code car ce problème se renouvelle pour chaque requête sur des 100taines de pages. Ta solution ne peut donc pas me servir car il faudrait que j'aille toucher tout monde code, par contre j'ai une page intermédiaire ou toutes les requêtes sont executés sous ADODB et là je peux peut être faire quelque chose mais quoi ? Je dois pouvoir remplir autant $tableau[Champ1] que $tableau[CHAMP1] et malheureusement je n'ai pas que ces 2 possibilités, il peut y avoir en exagérant $tableau[ChAmP1]. Merci, j'espère avoir été plus clair. |
|
|
00
|
|
|
#7 | ||
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
J'ai bien compris ta problématique.
Le souci est que PHP fait la différence entre les index ayant une casse différente. Du coup, tu seras bien obligé, à un moment ou à un autre, de toucher à ton PHP... C'est là qu'intervient ma solution. Pour la forme : Code :
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : octobre 2002 Messages : 42 ![]() |
je ne pourrais pas utiliser les expressions régulières (je ne sais pas comment),
pour avoir quelque chose comme : $tableau[CcHhAaMmPp1] et donc toutes les combinaisons seraient réunies ? merci |
|
|
00
|
|
|
#9 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Oui, en effet, mais cela supposerait que tu touches à ton code PHP, auquel cas il serait largement plus simple de mettre en place la solution proposée plus haut (strtolower()). À toi de voir.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : octobre 2002 Messages : 42 ![]() |
non car j'utilise la couche ADODB, donc le résultat de la requête et la construction du tableau se fait qu'à un seul endroit,
mais peut on faire un tableau insensible à la casse ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com