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 :

[MySql/PHP] Erreur de syntaxe requete SQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 45
    Points : 20
    Points
    20
    Par défaut [MySql/PHP] Erreur de syntaxe requete SQL
    Bonjour à tous,
    je suis en train de tester mes requetes SQL pour les integrer par la suite dans un programme plus gros.
    Donc connexion à la bd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    		$nomserveur='localhost';
    		$nombd='testbd';
    		$login='root';
    		$pass="";
    		$bd=mysql_connect($nomserveur,$login,$pass) or die("Connexion échouée");
    		mysql_select_db($nombd,$bd) or die("La base ne peut être selectionnée");
    La requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $requete = "SELECT s.emailcontact, s.n°contrat, c.envoimail, c.n°client
    					FROM siteweb s, contrat c
    					WHERE c.n°contrat = s.n°contrat
    					AND c.envoimail IS NOT NULL;";
    		//echo $requete;
    		$resultat = mysql_query($requete) or die(mysql_error());
    		while ($row = mysql_fetch_assoc($resultat)) {
    			   echo $row["n°client"];
    			   echo $row["n°contrat"];
    			   echo $row["emailcontact"];
    		}
    à la sortie j'ai une erreur :
    "Erreur de syntaxe près de '°contrat, c.envoimail, c.n°client FROM siteweb s, contrat c WHERE ' à la ligne 1"
    .
    Une idée de l'endroit où ça cloche ?
    Merci d'avance !

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Tu ne vois pas un truc qui cloche avec des noms comme : n°contrat n°client
    Perso j'en vois un : °

    Renomme les par des noms plus conventionnels genre : num_contrat, num_client, etc ...

    Quand bien même que le problème serait ailleurs, tu te mets franchement les bâtons dans les roues en nommant les chose ainsi.
    Pour éviter de perdre un temps fou sur ce genre de broutilles, s'imposer des règles de nommages est LA solution.
    Pas de caractères spéciaux (que les 26 lettres de l'alphabet et le _ ) pour les noms de Bdd, tables, champ, de dossiers/répertoires, fichiers, noms de fonctions, classes, etc ...

    C'est à mon sens le minimum, avec ça on élimine pleins de problèmes.
    C'est un conseil.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    Ok merci je vais faire ça proprement, mais si je fais la requête directement à partir de phpmyadmin ça fonctionne. L'erreur pourrait quand même venir de ces "°" ?

  4. #4
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    mais si je fais la requête directement à partir de phpmyadmin ça fonctionne.
    PhpMyAdmin entoure tous les noms (tables, champs, ...) avec de quotes inversées, genre :
    ... `siteweb`.`n°contrat`, `contrat`.`envoimail`, `contrat`.`n°client` ...

    Du coup la requête passe.
    C'est ce qui se passe lors de la création des tables, champs, et du coup on ne sait pas si les noms présentent des problème ou pas.

    Ca sous entend que tu pourrais en faire autant (entourer les nom par des `), mais pour des noms de ce genre là, pas sûr que ça soit judicieux.

    Si un jour ton projet évolue et que chaque table/champs deviennent des propriétés d'Objets voir même des Objets, ça va être la tuile (à mon sens).
    Avoir ceci par exemple : echo $contrat->n°contrat ???
    Pas sûr que ça soit très zen.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    Merci pour ton aide, mais j'ai du tout modifier, l'erreur précédente a disparu après avoir renommé les colonnes comme tu me l'avais conseillé.

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

Discussions similaires

  1. [EJB3 Entity] MySQL + Jboss => erreur de syntaxe SQL
    Par Olivier Constans dans le forum Java EE
    Réponses: 1
    Dernier message: 04/02/2009, 18h06
  2. sql et php erreur de syntaxe
    Par lilemy dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/06/2007, 15h57
  3. erreur de syntaxe requete mysql
    Par LaFik dans le forum Débuter
    Réponses: 1
    Dernier message: 18/09/2006, 14h23
  4. erreur dans une requete sql
    Par Skizo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 31/05/2006, 15h57
  5. [SGBD] [MYSQL/PHP]Erreur de connexion à la DB
    Par Oufti dans le forum Installation
    Réponses: 4
    Dernier message: 27/12/2005, 08h37

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