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 :

Erreur de syntaxe sur requête [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 140
    Par défaut Erreur de syntaxe sur requête
    Je souhaite joindre 2 tables et récupérer les infos qui m'intéresse dans les 2 tables

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $request="SELECT * 
    	    FROM " . mysql_real_escape_string ($ini_array['table1']) . " 
    	    INNER JOIN " . mysql_real_escape_string ($ini_array['table2']) . " 
    	    ON " . mysql_real_escape_string ($ini_array['table1']) . ".$address_IP. = " . mysql_real_escape_string ($ini_array['table2']) . ".$address_IP";

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $r = mysql_query($request,$link) or die ('Erreur : '.mysql_error() );
    	while ($a=mysql_fetch_array($r))
    	{
    	$Id =$a[Id];
    	$Interface = $a[Interface];
    	$Terminal = $a[Terminal];    
    	}
    Les champs Id, Interface et Terminal sont présents dans l'une ou l'autre des tables.

    J'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    358Erreur : You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '.256.358. = detail_host_list.168.256.256.358' at line 4
    C'est à dire sur la dernière partie de ma requête SELECT.

    J'avoue que je suis perdu entre les simple quotes, les double quotes, les '.$truc.',".$truc.", ...

    D'où vient l'erreur sur ma requête et surtout connaissez vous un tutorial bien écrit qui explique clairement quand il est nécessaire d'utiliser des ' ou bien des ", ...

    Merci

  2. #2
    Membre chevronné Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Par défaut
    je te conseil un

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 285
    Par défaut
    un point en trop...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $request = "
    	SELECT 
    		*
    	FROM 
    		".mysql_real_escape_string($ini_array['table1']).", 
    		" . mysql_real_escape_string ($ini_array['table2'])."
    	WHERE 
    		".mysql_real_escape_string($ini_array['table1']).".".$address_IP." = ".mysql_real_escape_string($ini_array['table2']).".".$address_IP;

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 140
    Par défaut
    J'ai suivi tes consils et j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FROM table1 
    	    INNER JOIN table 
    	    ON table1.168.256.256.358. = table2.168.256.256.358
    Cette requête me semble correcte. Le séparateur est bien un point entre la table et l'adresse IP normallement.
    Je me suis dit qu'il y avait peut-être une confusion entre les points de l'adresse IP.

    J'ai alors modifié ma requête comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $request="SELECT * 
    	    FROM " . mysql_real_escape_string ($ini_array['table1']) . " 
    	    INNER JOIN " . mysql_real_escape_string ($ini_array['table2']) . " 
    	    ON " . mysql_real_escape_string ($ini_array['table1']) . ".'$address_IP.' = " . mysql_real_escape_string ($ini_array['table2']) . ".'$address_IP'";
    Mais j'obtien la même erreur.

    Le echo $request me renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FROM table1 
    	    INNER JOIN table2 
    	    ON table1.'168.256.256.358' = 'table2.'168.256.256.358'

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 285
    Par défaut
    tu avais un point en trop dans ta requete initiale, essaye celle que je t'ai donné

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 140
    Par défaut
    Je l'ai enlevé mais j'ai la meme erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $request="SELECT * 
           FROM " . mysql_real_escape_string ($ini_array['table1']) . " 
           INNER JOIN " . mysql_real_escape_string ($ini_array['table2']) . " 
           ON " . mysql_real_escape_string ($ini_array['table1']) . ".'$address_IP' = " . mysql_real_escape_string ($ini_array['table2']) . ".'$address_IP'";
    Resultat echo $request :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FROM table1 
           INNER JOIN table2 
           ON table1.'168.256.256.358' = 'table2.'168.256.256.358'

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 285
    Par défaut
    alors essaye d'entourer tes champs, non pas avec des ' mais avec des `

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 285
    Par défaut
    d'ailleurs, j'avais pas vu mais dans la requete que tu as fait avec les '
    tu as un ' devant table2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FROM table1
           INNER JOIN table2
           ON table1.'168.256.256.358' = 'table2.'168.256.256.358'
    du coup y a un ' en trop

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 140
    Par défaut
    Tjrs pareil!!!!!!!!!!!!

  10. #10
    Membre chevronné Avatar de gofono_bass
    Inscrit en
    Décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    Par défaut
    tu as essayé ce que t'as conseillé Sion_Sempai? avec des `et non des ' pour les champs, donc comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FROM table1 
           INNER JOIN table2 
           ON table1.`168.256.256.358` = table2.`168.256.256.358`
    ?
    et si tu fais un copier coller de la requete affichée avec le echo dans phpyadmin ça donne quoi?

  11. #11
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 140
    Par défaut
    J'ai essayé avec des `

    Ma requête est alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $request="SELECT * 
    	    FROM " . mysql_real_escape_string ($ini_array['table1']) . " 
    	    INNER JOIN " . mysql_real_escape_string ($ini_array['table2']) . " 
    	    ON " . mysql_real_escape_string ($ini_array['table1']) . ".`$address_IP` = " . mysql_real_escape_string ($ini_array['table2']) . ".`$address_IP`";
    L'erreur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Erreur : Unknown column 'equipment_list.15.185.59.269' in 'on clause'
    Le echo $request me renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * 
    	    FROM equipment_list 
    	    INNER JOIN detail_host_list 
    	    ON equipment_list.`15.185.59.269` = detail_host_list.`15.185.59.269`
    Je ne vois pas d'où peut venir l'erreur

  12. #12
    Membre chevronné Avatar de gofono_bass
    Inscrit en
    Décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    Par défaut
    t'es sur que t'as une colonne equipment_list.`15.185.59.269` dans ta table?

    edit: enfin je veux dire une colonne 15.185.59.269 dans ta table equipment_list ?

  13. #13
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 140
    Par défaut
    Non, effectivement.
    Le paramètre était incorrect.
    Merci

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

Discussions similaires

  1. Erreur de syntaxe sur requête SQL
    Par urbanna0069 dans le forum Requêtes
    Réponses: 1
    Dernier message: 26/01/2015, 10h50
  2. [SQL] Erreur de syntaxe sur ma requête UPDATE
    Par webasso dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/09/2007, 14h55
  3. Erreur de syntaxe sur une requête paramétrée
    Par deglingo37 dans le forum Access
    Réponses: 5
    Dernier message: 16/05/2006, 22h21
  4. [MySQL] Erreur de syntaxe sur ma requête SELECT
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 08/03/2006, 11h50
  5. [MySQL] Erreurs de syntaxe sur requêtes DELETE
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/03/2006, 15h53

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