Problème de nom de champs (symbole degré et accent)

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

7 réponses

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
25 juil. 2011 à 22:06
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
3
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
22 juil. 2011 à 18:21
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 -
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
23 juil. 2011 à 10:28
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
0
suxxa Messages postés 21 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 20 décembre 2012
25 juil. 2011 à 10:45
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.
0

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

Posez votre question
suxxa Messages postés 21 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 20 décembre 2012
25 juil. 2011 à 10:49
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
0
suxxa Messages postés 21 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 20 décembre 2012
26 juil. 2011 à 09:04
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
0
suxxa Messages postés 21 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 20 décembre 2012
26 juil. 2011 à 09:23
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!
0
Rejoignez-nous