IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Nom de colonne comportant des caractéres speciaux inaccesible


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Par défaut Nom de colonne comportant des caractéres speciaux inaccesible
    Bonjour

    J'ai malheureusement une colonne de ma base qui a ce nom :SITE(S)
    Et lorsque je veux y accéder via ma variable array, ca ne marche pas .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $result = mysql_query ($sql) or die( mysql_error() ) ;
    	for($i=0;$data[$i] = mysql_fetch_assoc($result);$i++);
    	array_pop($data);
     
    	echo $data [1][SITE(S)];  // :cry:Ca ne fonctionne pas
    	echo $data [$i][SITE];    // :ccool:Ca fonctionne
    Voici ma table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE TABLE IF NOT EXISTS `XX` (
      `SITE(S)` varchar(15) DEFAULT NULL,
      `CODE` varchar(60) DEFAULT NULL)

    Quelle est la bonne ortographe de echo $data [1][SITE(S)]; ????

    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Les index sont encadrés quand ils ne sont pas numériques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	echo $data [1]['SITE(S)'];
    	echo $data [$i]['SITE'];
    On peut aussi utiliser un alias
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT `SITE(S)` as sites
    Dans tous les cas, avoir un nom de colonne pareil ca ne rime a rien.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Par défaut
    Je suis bien d'accord avec toi qu'un nom de colonne comme ca, ca ne rime a rien mais malheureusement je n'ai pas le choix.

    Je ne peux pas utiliser d'alias car j'ai environ 70 colonnes, c'est pas trop gérable ...

    En effet les encadrés sont indispensable cependant ca ne marche toujours pas ...

    echo $data [1]['SITE(S)']; // Ca ne fonctionne pas
    echo $data [1]['SITE']; // Ca fonctionne

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est plutot ça que tu veux faire je pense :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $result = mysql_query ($sql) or die( mysql_error() ) ;
    	while($row = mysql_fetch_assoc($result)) {
                $data[] = $row['SITE(S)'];
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Par défaut
    Non, j'ai besoin de tout mes champs(environ 70). Et j'ai besoin de les appeller individuellement pour les traiter differement ...
    Voici le Code Complet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    echo "Recherche de :".$code."<br>";
    	$sql="SELECT * FROM `XX`  WHERE `CODE` like '%$code%'";
    	$result = mysql_query ($sql) or die( mysql_error() ) ;
     
    	$total	= mysql_num_rows($result);
     
    	for($i=0;$data[$i] = mysql_fetch_assoc($result);$i++);
    	array_pop($data);
     
    	// Pour affichage des données dans un tableau en ayant chaque code sur une colonne 
     
    			for ($j = 0; $j <= $total; $j++)
    		{
    			echo $data[$j]['SITE(S)'];  ===> Celui ci ne marche pas !!!!
    			echo $data[$j]['CODE'];
    			echo $data[$j]['OWNER'];
    			echo $data[$j]['DATA'];
    			... (~70 champs supp)
     
    		}

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pour moi ton code n'a pas sens.
    Si ta requête recolte 45 lignes, au premier tour de boucle, tu affiches la premiere ligne et 44 lignes vides.
    Au deuxieme tour de while, tu affiches la premiere a nouveau, la deuxieme et 43 lignes vides.

    Ton array_pop() ne fait rien puisqu'il n'est pas affecté.

    Pour debuguer ton problème, fais un
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/08/2013, 18h17
  2. Syntaxe : noms de colonnes contenant des caractères spéciaux
    Par phDeveloppement dans le forum Langage SQL
    Réponses: 12
    Dernier message: 20/04/2012, 11h07
  3. [Oracle] Insertion de données comportant des caractères accentués
    Par elzebore dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/11/2007, 19h44
  4. Créer une table dont les noms de colonnes sont des paramètres
    Par Mythrandil dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/09/2007, 15h08
  5. Réponses: 2
    Dernier message: 26/07/2007, 08h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo