Problème de nom de champs (symbole degré et accent) [Résolu]

suxxa
Messages postés
21
Date d'inscription
mercredi 9 juin 2010
Dernière intervention
20 décembre 2012
- 22 juil. 2011 à 17:21 - Dernière réponse : suxxa
Messages postés
21
Date d'inscription
mercredi 9 juin 2010
Dernière intervention
20 décembre 2012
- 26 juil. 2011 à 09:23
Bonjour à tous,

Suite à pas mal de recherche pour trouver la solution de mon problème sans résultat, j'ai décidé de faire appel à vous.

J'ai besoin de faire plusieurs requêtes dans le cadre d'un développement sur une base Access. J'adapte une application VBA en PHP.

Mon problème est que certains champs de mes tables contiennent des accents et le symbole degré (°). (ex: N° ID, Téléphone etc...)

J'exécute mes requêtes avec odbc et j'ai systématiquement des erreurs quand je sélectionne ces champs.
J'ajoute qu'il m'est impossible de renommer les champs car plusieurs applications VBA tournent sur cette base et que cela poserait beaucoup de problèmes.

Résumé: Comment exécuter une requête sur une base Access sans problème en sélectionnant des champs qui contiennent des accents et des symboles degré (°)? (via odbc si possible)

Je vous remercie d'avance.

SuxxA
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
- 25 juil. 2011 à 22:06
3
Merci
Tu n'es pas obligé d'utiliser des noms de variables énormes, tu peux simplement les nommer $sql, $res, $row. On voit directement de quoi il s'agit avec le SQL. Essaie ceci : $resultDesincar = odbc_exec($connection, utf8_decode($queryRecupDesincar)); J'insiste, ton fichier doit être encodé en UTF-8 pour que ça fonctionne.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question

Merci cs_ghuysmans99 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de cs_ghuysmans99
kohntark
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Dernière intervention
27 avril 2012
- 22 juil. 2011 à 18:21
0
Merci
Salut,

Peut on voir le code PHP nécessaire et connaitre les erreurs exactes qui te sont retournées ?
Quels sont les encodages utilisés de part et d'autre ?


Cordialement,


Kohntark -
Commenter la réponse de kohntark
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
- 23 juil. 2011 à 10:28
0
Merci
Essaie d'encoder ton script PHP en UTF-8 et de faire un exec du style execsql(utf8_decode($sql)); avec $sql qui contient ta requête ... Ca pourrait peut-être marcher, qui sait

(Là au moins tu sais que la prochaine fois que tu feras une structure de BDD, tu n'utiliseras plus jamais des noms de champs non-alphanum)

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Commenter la réponse de cs_ghuysmans99
suxxa
Messages postés
21
Date d'inscription
mercredi 9 juin 2010
Dernière intervention
20 décembre 2012
- 25 juil. 2011 à 10:45
0
Merci
Bonjour,

Alors, au niveau des encodages je suis en utf-8
header('Content-Type: text/html; charset=utf-8');

Je fait des test avec une requête basique pour l'instant, donc ça ne vient pas de la requête qui serait erronée, mais c'est bien un problème de syntaxe de mes champs. Je vous montre quand même mon code.

    include('dbConnect.php');
    $queryRecupDesincar =  'SELECT "Téléphone 2"
                            FROM "Messages Ascenseurs"';

    $resultDesincar = odbc_exec($connection, $queryRecupDesincar);
    $array = odbc_fetch_array($resultDesincar);
    
    print_r($array);



Je tiens à préciser par ailleurs que je suis dans une entreprise et que je dois utiliser une base qui existait déjà avant mon arrivée, et que donc ce n'est pas moi qui ai nommé les champs.

Je vous remercie d'avance.
Commenter la réponse de suxxa
suxxa
Messages postés
21
Date d'inscription
mercredi 9 juin 2010
Dernière intervention
20 décembre 2012
- 25 juil. 2011 à 10:49
0
Merci
Je n'ai pas trouvé comment modifier mon message précédent, j'avais omis le message d'erreur, pardonnez moi.

Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Pilote ODBC 
Microsoft Access] Trop peu de param�tres. 1 attendu., SQL state 07001 
in SQLExecDirect in F:\xampp\htdocs\eReport\fonctions.php on line 165


Merci
Commenter la réponse de suxxa
suxxa
Messages postés
21
Date d'inscription
mercredi 9 juin 2010
Dernière intervention
20 décembre 2012
- 26 juil. 2011 à 09:04
0
Merci
Bonjour, merci pour votre réponse, j'avais essayé entre-temps avec utf8_decode et utf8_encode mais ça ne marchait pas.
Cela doit donc venir comme vous le dites de l'encodage de mon fichier.
Ma page contient un header et une meta

header('Content-Type: text/html; charset=utf-8');

<meta content="text/html; Charset=UTF-8" http-equiv="Content-Type" />


Que dois-je faire de plus à votre avis?

Merci bien
Commenter la réponse de suxxa
suxxa
Messages postés
21
Date d'inscription
mercredi 9 juin 2010
Dernière intervention
20 décembre 2012
- 26 juil. 2011 à 09:23
0
Merci
Je viens de réessayer, en fait j'avais un problème de base au moment où j'avais utilisé utf8_decode, mon problème de base est réglé et c'est bien utf8_decode qui m'a sauvé.

Merci beaucoup!
Commenter la réponse de suxxa

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.