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

suxxa 21 Messages postés mercredi 9 juin 2010Date d'inscription 20 décembre 2012 Dernière intervention - 22 juil. 2011 à 17:21 - Dernière réponse : suxxa 21 Messages postés mercredi 9 juin 2010Date d'inscription 20 décembre 2012 Dernière intervention
- 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

cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 25 juil. 2011 à 22:06
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_ghuysmans99
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 22 juil. 2011 à 18:21
0
Utile
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 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 23 juil. 2011 à 10:28
0
Utile
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 21 Messages postés mercredi 9 juin 2010Date d'inscription 20 décembre 2012 Dernière intervention - 25 juil. 2011 à 10:45
0
Utile
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 21 Messages postés mercredi 9 juin 2010Date d'inscription 20 décembre 2012 Dernière intervention - 25 juil. 2011 à 10:49
0
Utile
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 21 Messages postés mercredi 9 juin 2010Date d'inscription 20 décembre 2012 Dernière intervention - 26 juil. 2011 à 09:04
0
Utile
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 21 Messages postés mercredi 9 juin 2010Date d'inscription 20 décembre 2012 Dernière intervention - 26 juil. 2011 à 09:23
0
Utile
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.