Requête sql espace nom table

Résolu
Giuliano -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour à tous,

J'aimerais effectuer une requête pour afficher des données de ma base sur la page d'un site. Malheureusement, certains noms de tables contiennent des espaces, et je ne connais pas la syntaxe correcte pour que la table soit reconnue...

Je sais ce que vous allez dire, ne pas mettre d'espace dans des tables !! Malheureusement, ce n'est pas moi qui ai créé cette base de données et vue la grandeur de cette dernière, il me serait impossible de renommer toutes les tables...

Est-ce que quelqu'un pourrait m'aider ? Ma base de donnée est Access et sur mon site, je programme en PHP.

Merci d'avance !

A voir également:

6 réponses

adnanos
 

C'est simple, utilise des backquotes, par exemple `ton champ` ;)

Attention pas les apostrophes ' ' !!!!!

100%

18
epaude
 
merci ça fonctionne
0
Incognito
 

Bonjour. Cette méthode ne fonctionne pas, mettre des '' ne fait que retourner une colonne de str contenant le nom de la colonne initiale, ex : SELECT 'Code secteur' FROM Table retourne Code secteur en nom de colonne puis les champs : Code secteur, Code secteur, Code secteur etc... à chaque ligne. Hors il est pourtant évident qu'on cherche à obtenir les valeurs de la colonne Code secteur et non son nom lui même.

Si quelqu'un a une solution pour cela, merci d'avance.

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Incognito
 

bonjour 

c'est bien indiqué qu'il ne faut pas utiliser des qotes (apostrophe) ou des doubles quotes (guillemets).. mais les backquotes... `  (l'apostrophe à l'envers)

et si c'est une base de données Access tu dois pouvoir utiliser des crochets. [ton champ] il me semble 

1
Giuliano
 
Personne n'a une petite idée pour me venir en aide? Je ne sais vraiment plus quoi faire... Merci d'avance!
3
AC
 
Bjr!
Je crois pas qu'il y ai de solution à ton pb, en general php est utilisé pour faire le lien avec une base de type MySQL ou similaire et l'espace est un caractère interdit dedans. Essaye toujours d'encadrer tes noms de tables avec des ` (Alt GR +7) mais n'est pas trop d'espoir. A mon avis il faut que tu renomme tes tables.
3
Giuliano
 
Bjr, tout d'abord merci pour ta réponse même si c'est pas forcément celle que j'attendais... ;o)
Pour renommer les tables, ça va être difficile car il y en a énormément!!! Et peut-être en le faisant avec un autre language? Java, asp?!
Je vais regarder tout ça et si je ne peux pas m'en sortir autrement, je m'attélerai à la tâche de renommer toutes mes tables...
Merci en tout cas!
0
gwaa Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Il me semble que phpmyadmin(qui est écrit en php) peremet de créer et d'exploiter des tables Mysql avec un un nom contenant un caractère "espace", donc c'est forcément possible...
0
babbel > gwaa Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,
Bon, ca fait longtemps que tu as posté ton message, mais je suis tombé dessus par harsard car j'ai le meme probleme mais sur SQL Server.

Pour toi et les autes qui pourrait avoir le meme probleme, la requete passe sans probleme si tu encadre le nom de ta table par des [ ].

Ce qui donne dans mon cas
select * from [Mois courant]

@+
1
noumidya > babbel
 
je vous remercie infiniment pour le truc de [] utiliser dans la procedure WHERE pour les colonnes qui contiennet le nom separé par un espace. tu m'as enmagasiné un grand travail pour tout renommer de debut
autre fois merci mon ami.
0
Pierre
 
Sinon, si tu bosse avec PHP et MySQL, en encadrant simplement les noms de tables avec des ` dans la requete suffit pour que ça marche.

A+, Pierre
0

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

Posez votre question
DragonMiki
 
Oui il est possible de bosser avec Mysql et des table ou champs avec espace meme si ce n'est pas idéal.
Pour cela faites un petit exemple dans PhpMyadmin avec un insertion ou un select il vous donnera la syntaxe

ex pour une insertion :

INSERT INTO `table avec espace` ( `id` , `largeur` , `hauteur` , `epaisseur` , `nom champs avec espace`)
VALUES ('$id', '$largeur', '$hauteur', '$epaisseur', '$nom_champs')

Car il n'est pas tjrs facile ou meme autoriser de renommr le nom des tables ou des champs et que celui qui a créé la table ou les champs n'a pas forcement fait tout comme il faudrait :)
0
-CCM-
 
Bonjour, dans la même idée, avec php et mysql.

Je récupère des noms de documents qui me serviront d'url.
Le souci c'est que certains noms de documents contiennent des espaces.

Du coups lorsque je récupere le nom et que je le stock dans ma base j'ai bien :"nom du document.pdf"
Mais lorsque je l'utilise dans un script pour en faire un lien j'ai simplement :"http://localhost/nom"

Il faut obligatoirement renomer le document en :" nom%20du%20document.pdf"
Pour avoir l'url :":"http://localhost/nom%20du%20document.pdf"

Ma variable $nom contient bien " nom du document.pdf "
Mais en écrivant : "http://localhost/`$url`" j'obtient :"http://localhost/%60nom "

Comment obtenir une variable qui servira d'url contenant des espaces?

Merci
0
simo
 
tt simplement [ nom champ] c pratique
0