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 [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2005
    Messages : 259
    Par défaut Erreur de syntaxe
    Bonjour,

    j'ai le code php suivant:

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    $e1 = mysql_query("SELECT * FROM equipes WHERE nom = '" . $data['domicile'] . "'") or die(mysql_error());
    	$e2 = mysql_query("SELECT * FROM equipes WHERE nom = '" . $data['visiteur'] . "'") or die(mysql_error());
     
    	$e11 = mysql_fetch_array($e1);
    	$e22 = mysql_fetch_array($e2);
     
    	if($data['scoreD'] > $data['scoreE'])
    	{
    		$pointsD = $e11['points'] + 3;
     
    		$victoireD = $e11['victoire'] + 1;
    		$defaiteE = $e22['defaite'] + 1;
     
    		$matchD = $e11['match'] + 1;
    		$matchE = $e22['match'] + 1;
     
    		$bpD = $e11['bp'] + $data['scoreD'];
    		$bpE = $e22['bp'] + $data['scoreE'];
     
    		$bcD = $e11['bp'] + $data['scoreE'];
    		$bcE = $e22['bp'] + $data['scoreD'];
     
    		$gaDtemp = $data['scoreD'] - $data['scoreE'];
    		$gaEtemp = $data['scoreE'] - $data['scoreD'];
     
    		$gaD = $e11['ga'] + $gaDtemp;
    		$gaE = $e22['ga'] + $gaEtemp;
     
    		mysql_query("UPDATE equipes SET match='" . $matchD . "', victoire='" . $victoireD . "', bp='" . $bpD . "', bc='" . $bcD . "', points='" . $pointsD . "', ga='" . $gaD . "' WHERE nom='" . $e11['nom'] . "'") or die(mysql_error());
    		mysql_query("UPDATE equipes SET match='" . $matchE . "', defaite='" . $defaiteE . "', bp='" . $bpE . "', bc='" . $bcE . "', ga='" . $gaE . "' WHERE nom='" . $e22['nom'] . "'") or die(mysql_error());
    	}
    Ce qui pose problème, c'est la requête tout en bas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("UPDATE equipes SET match='" . $matchD . "', victoire='" . $victoireD . "', bp='" . $bpD . "', bc='" . $bcD . "', points='" . $pointsD . "', ga='" . $gaD . "' WHERE nom='" . $e11['nom'] . "'") or die(mysql_error());
    Il me vient l' erreur suivante:
    Erreur de syntaxe près de 'match='1', victoire='1', bp='3', bc='1', points='3', ga='2' WHER' à la ligne 1
    Qqun peut-il m'aider a corriger cette erreur de syntaxe svp?

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Par défaut
    tu as fait un echo de ta requete ?
    sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ma_query = "UPDATE equipes SET match='" . $matchD . "', victoire='" . $victoireD . "', bp='" . $bpD . "', bc='" . $bcD . "', points='" . $pointsD . "', ga='" . $gaD . "' WHERE nom='" . $e11['nom'] . "'";
    echo $ma_query;

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2005
    Messages : 259
    Par défaut
    oui, il vient ceci:
    UPDATE equipes SET match='1', victoire='1', bp='3', bc='1', points='3', ga='2' WHERE nom='Fontenais'
    Parce que dans un UPADTE, il ne faut pas obligatoirement indiqué tous les champs, uniquement ceux qui changent, n'est-ce pas?

  4. #4
    Membre expérimenté Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Par défaut
    si tu as un accès phpmyadmin, colle cette requete dedans et vois l'erreur.
    es tu sur du nom des champs ?
    à propos tu as l'air d'insérer du varchar '' alors que tout ne semble que numérique. de quel type sont ces champs en bdd ?

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2005
    Messages : 259
    Par défaut
    En effet, les champs sont des tinyint a part le nom qui est varchar.
    Dans ce cas-là, comment dois-je insérer mes valeurs?

    Dans phpmyadmin, la requete est comprise comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE equipes SET MATCH = '1',
    victoire = '1',
    bp = '3',
    bc = '1',
    points = '3',
    ga = '2' WHERE nom = 'Fontenais'
    Alors qu'elle est censée etre comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE equipes SET match = '1',
    victoire = '1',
    bp = '3',
    bc = '1',
    points = '3',
    ga = '2' WHERE nom = 'Fontenais'
    (match et MATCH) et l'erreur est la meme

  6. #6
    Membre expérimenté Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Par défaut
    match est un nom réservé !
    j'avais meme pas vu...

    change le nom de ton champs !

    pour répondre à l'autre question, les simples quotes indiquent une chaine de caractère.
    dans ton cas, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE equipes SET MATCH = 1,
    victoire = 1,
    bp = 3,
    bc = 1,
    points = 3,
    ga = 2 WHERE nom = 'Fontenais'

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

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

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