Page 1 sur 2

caractères spéciaux dans une entete de champ de table

Posté : 09 oct. 2008, 09:49
par fred9999
bonjour à tous

voila j'ai un soucis au niveau de l'interrogation d'un table
l'entete de mon champ est N°CLient et forcément lorsque j'essaye de le traiter
par sql il ne le prend pas

il y a t'il une astuce pour ça?
$query="SELECT * FROM BETTY.FACRECTEST WHERE N°Client='".$_POST['cli']."'";
juste pour info voici l'erreur :

Warning: odbc_exec(): SQL error: [IBM][Pilote ODBC iSeries Access][DB2 UDB]SQL0104 - Elément syntaxique ° n'est pas correct. Eléments possibles : < > = <> <= !< !> != >= ¬< ¬> ¬= IN NOT., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-8\www\stat\mtcli.php on line 86

Posté : 09 oct. 2008, 10:15
par Berzemus
C'est courageux que de vouloir utiliser des caractères "exotique" dans le nom d'une colonne.. essaye en mettant des accents (! pas des apostrophes):

Code : Tout sélectionner

SELECT * FROM BETTY.FACRECTEST WHERE `N°Client`='".$_POST['cli']."'
J'ai eu le même souci avec une feuille excel, impossible de faire comprendre que des accents ou tout caractère qui n'était pas a-zA-Z était à proscrire..

Posté : 09 oct. 2008, 10:22
par fred9999
courageux ... non ... je suis obligé de faire avec :lol:

les accents ... négatifs capitaine ... ça passe pas et on a perdu le sergent ryan :P

erreur similaire : Warning: odbc_exec(): SQL error: [IBM][Pilote ODBC iSeries Access][DB2 UDB]SQL0104 - Elément syntaxique ` n'est pas correct. Eléments possibles : ( + - ? : DAY NOT RRN CASE CAST CHAR DATE DAYS HASH HOUR LEFT., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-8\www\stat\mtcli.php on line 86

Posté : 09 oct. 2008, 10:34
par mere-teresa
J'ai cherché sur :google: (mots clefs sql db2 quote)
http://bytes.com/forum/thread624644.html

Posté : 09 oct. 2008, 11:24
par fred9999
alors si je comprend bien :

le ' permettrai de rendre lisible le ° pour l'exécution de ma requete.

or j'ai un message d'erreur me disant qu'il n'accepte pas les caractères UTF8.

message d'erreur :
Warning: odbc_exec(): SQL error: [IBM][Pilote ODBC iSeries Access][DB2 UDB]SQL0105 - Constante de chaîne de type UTF8, graphique ou mixte non admise., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-8\www\stat\mtcli.php on line 86.


ou alors je suis complétement à la masse :shock:


ça peut pas venir de mon lien odbc par hasard?

Posté : 09 oct. 2008, 11:28
par Berzemus
peut-être un souci d'encodage du nom de la table..

Si ton fichier php est en utf8, essaye ceci:
utf8_decode(N°Client)

pour le faire passer en iso.

Posté : 09 oct. 2008, 11:32
par fred9999
non il me met toujours le meme message.
$query="SELECT * FROM BETTY.FACRECTEST WHERE ".utf8_decode("N'°'Client")."='".$_POST['cli']."'";
c'est bien comme ça pour l'utiliser ?

Posté : 09 oct. 2008, 11:51
par Berzemus
Plutôt comme ceci:
$query="SELECT * FROM BETTY.FACRECTEST WHERE ".utf8_decode("N°Client")."='".$_POST['cli']."'"; 
mais si on à enlevé le UTF8, reste encore l'élément graphique ou mixte..

Ceci dit, l'apostrophe délimite un chaine textuelle, pas le nom d'une table.

Il doit y avoir moyen de délimiter le nom de la table, mais si ce ne sont pas les accents, je ne vois pas ce que ça pourrait être..

Posté : 09 oct. 2008, 11:54
par fred9999
en fait si je met pas les ' ça me marque exactment le meme message d'erreur que mon premier message.

j'ai trouver ça sur du vb mais ça fonctine pas non plus : http://www.vbfrance.com/forum/sujet-REQ ... 72632.aspx

Posté : 09 oct. 2008, 15:15
par Maitrepylos
Tu es sur que cela ne fonctionne pas ?
$query="SELECT * FROM BETTY.FACRECTEST WHERE [`N°Client`]=".$_POST['cli']."; 

Posté : 09 oct. 2008, 15:40
par fred9999
ouais mais il me dis qu'il comprend pas les [.

message : Warning: odbc_exec(): SQL error: [IBM][Pilote ODBC iSeries Access][DB2 UDB]SQL0104 - Elément syntaxique [ n'est pas correct. Eléments possibles : ( + - ? : DAY NOT RRN CASE CAST CHAR DATE DAYS HASH HOUR LEFT., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-8\www\stat\mtcli.php on line 86

j'ai l'impression que c'est le lien odbc vers mon AS400 qui bugge mais après comment faire ? :P

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 09 oct. 2008, 15:50
par Maitrepylos
Je viens de créer un table N°Client

et dans mon Editeur Sql ceci passe sans problème

Code : Tout sélectionner

select "N°Client"."nom" from "MAITREPYLOS"."N°Client"

Posté : 09 oct. 2008, 16:11
par fred9999
non mais en fait laissez tomber j'ai eut un eclair d'un coup :

si dans l'editeur as400 je ne voyai pas les étiquettes de colonnes qui remplace les denominations
de champ.

ET PAFFF

en plein dedans donc c normal qu'il ne me les trouvait pas :shock:

Posté : 09 oct. 2008, 16:35
par furiouslol
Euh j'veux pas dire de bétise mais pour gérer les caracteres spéciaux c'est l'accent inversé qu'il faut utiliser, et non pas l'apostrophe ou le guillemet

Posté : 09 oct. 2008, 19:15
par Berzemus
non mais en fait laissez tomber j'ai eut un eclair d'un coup :

si dans l'editeur as400 je ne voyai pas les étiquettes de colonnes qui remplace les denominations
de champ.

ET PAFFF

en plein dedans donc c normal qu'il ne me les trouvait pas :shock:
:axe: