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 :

comment adapter la requête si le nom attribut est N° [ODBC]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Par défaut comment adapter la requête si le nom attribut est N°
    Bonjour à tous ;

    j'exploite une base access via php et là j'arrive à adapter la requête si le nom des attributs comportes des espaces en mettant des []

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $sql = "SELECT [id personne] as ID,nom,prenom,adresse,cp,telephone,Datenaissance FROM [perso nnes] where [id personne] =2 ";
    ce code marche
    mais supposons qu'au lieu de id personne on change le nom de l'attribut par N°

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $sql = "SELECT [N°] as ID,nom,prenom,adresse,cp,telephone,Datenaissance FROM [perso nnes] where [id personne] =2 ";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 2 attendu., SQL state 07001 in SQLExecDirect in C:\wamp\www\FichierTransfert\essaiEspace.php  on line 11
     
    Warning: odbc_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\FichierTransfert\essaiEspace.php on line 14
    ma question c'est de : comment adapter le N° dans la requête vu que [] ne marche pas

  2. #2
    Membre chevronné
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Par défaut
    Salut,

    Je ne suis pas certain que cela fonctionnera mais tu peux essayer avec des guillemets obliques (Alt Gr + 7):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT `N°` as ID,nom,prenom...
    Dans tous les cas, mieux vaut éviter les caractères spéciaux et les espaces dans le nom de tes champs et de tes tables.


    A++

  3. #3
    Membre éclairé Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Par défaut
    Salut ;
    en tout cas merci d'avoir répondu mais voilà j'ai essayé tous les cas de figures mais çà ne marche pas
    j'aimerai bien changer et modifier la base mais je ne peux pas tout simplement car il y a déjà un logiciel fait en visual basic qui exploite cette base accès donc ma tâche c'est de créer un similaire en php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $sql = "SELECT [`N°`] as ID,nom,prenom,adresse,cp,telephone,Datenaissance FROM [perso nnes] where [id personne] =2 ";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Le moteur de base de données ne peut pas trouver «  ». Assurez-vous que le nom de paramètre ou d'alias est valide, qu'il ne comprend pas de caractère ou de ponctuation incorrect et qu'il n'est pas trop long., SQL state 37000 in SQLExecDirect in C:\wamp\www\FichierTransfert\essaiEspace.php on line 11
     
    Warning: odbc_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\FichierTransfert\essaiEspace.php on line 14
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "SELECT `N°` as ID,nom,prenom,adresse,cp,telephone,Datenaissance FROM [perso nnes] where [id personne] =2 ";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 2 attendu., SQL state 07001 in SQLExecDirect in C:\wamp\www\FichierTransfert\essaiEspace.php  on line 11
     
    Warning: odbc_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\FichierTransfert\essaiEspace.php on line 14
     
     
    ici en utilisant , l'apostrophe (touche 4)
    $sql = "SELECT ['N°'] as ID,nom,prenom,adresse,cp,telephone,Datenaissance FROM [perso nnes] where [id personne] =2 ";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 2 attendu., SQL state 07001 in SQLExecDirect in C:\wamp\www\FichierTransfert\essaiEspace.php  on line 11
     
    Warning: odbc_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\FichierTransfert\essaiEspace.php on line 14
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $sql = "SELECT 'N°' as ID,nom,prenom,adresse,cp,telephone,Datenaissance FROM [perso nnes] where [id personne] =2 ";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $sql = "SELECT 'N°' as ID,nom,prenom,adresse,cp,telephone,Datenaissance FROM [perso nnes] where [id personne] =2 ";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    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 C:\wamp\www\FichierTransfert\essaiEspace.php  on line 11
     
    Warning: odbc_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\FichierTransfert\essaiEspace.php on line 14

    merci d'avance

  4. #4
    Membre éclairé Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Par défaut
    pourtant quand je regarde le code sql dans une requête sous access ; ce genre de code y figure et çà prouve que c'est autorisé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT Client.N°, Client.[ID Cabinet], Client.Adresse, Client.[Code postal], Client.Ville, Utilisateurs.Nom AS [Nom courtier], Contact.Nom, Contact.Prénom, Client.Tel, Client.Fax, Client.[Tel portable], [Client Entreprise].[Raison sociale]
    FROM Contact RIGHT JOIN ([Client Entreprise] INNER JOIN (Client LEFT JOIN Utilisateurs ON Client.[Code Utilisateur] = Utilisateurs.N°) ON [Client Entreprise].[N° dans client] = Client.N°) ON Contact.[Numéro Client Entreprise] = [Client Entreprise].N°;
    quelqu'un peut m'aider c'est vraiment vital

  5. #5
    Membre chevronné
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Par défaut
    Salut,

    J'ai effectué quelques tests avec PHP et access et je n'ai aucun problème à utiliser les [] et un champ appelé N°. Par contre il me semble qu'il y une erreur dans ta requête : le champ [id personne] n'existe pas et doit être remplacé par N°, y compris dans la clause where. L'erreur vient peut-être de là !

    A++

  6. #6
    Membre éclairé Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Par défaut
    Salut voilà ;
    j'essai de faire mais y a toujours une erreur malgré le fait que j'ai corrigé la requête
    en fait dans la base [perso nnes] il y a ces attributs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    N°
    nom
    prenom
    adresse
    cp
    telephone
    Datenaissance
    dans un premier temps pour s'assurer j'ai mis la requête comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     $sql = "SELECT Pers.nom  FROM [perso nnes]as Pers where Pers.nom like 'raymond' ";
    $ret = odbc_exec ($cnx , $sql);
     
     
       while ( odbc_fetch_row ( $ret)) {
     
     
    	    $numDep = odbc_result( $ret, "nom");
     
    	    echo 'le nom est : '.$numDep."<br />";
     
     
    	   }
    et il m'affiche correctement

    mais après quand je rajoute le N° comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $sql = "SELECT Pers.nom ,Pers.[N°] FROM [perso nnes]as Pers where Pers.nom like 'ramihone' ";
    résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    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 C:\wamp\www\FichierTransfert\essaiEspace.php  on line 19
     
    Warning: odbc_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\FichierTransfert\essaiEspace.php on line 22

    ces lignes correspondent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $ret = odbc_exec ($cnx , $sql);
     
     
       while ( odbc_fetch_row ( $ret)) {

    donc forcément c'est :
    qui provoque l'erreur
    je ne sais pas et j'aimerai voir comment vous faites

    et la requête finale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = "SELECT Pers.[N°] as ID ,Pers.nom,Pers.prenom,Pers.adresse,Pers.cp,Pers.telephone,Pers.Datenaissance
         FROM [perso nnes]as Pers
          where ID  =2 ";  // j'ai déjà mis Pers.[N°]
    merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment modifier une requête sql quand un checkbox est checked ?
    Par salyiohh dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/06/2015, 15h22
  2. Réponses: 22
    Dernier message: 10/07/2011, 17h49
  3. [ODBC] comment adapter une date format access dans une requête
    Par razily dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/06/2010, 14h10
  4. [SimpleXML] comment faire une requête basée sur un namespace d'un attribut ?
    Par hansaplast dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 03/09/2007, 01h18
  5. [xpath] Requête sur le nom des attributs sans casse
    Par fedfil dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 30/01/2006, 10h58

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