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 à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 6
    Par défaut Erreur de syntaxe
    Bonjour,

    je travaille actuellement sur une appli web codée essentiellement en javascript, php(5.0.45) et mysql. Cette appli devra fonctionner sous IE 6.0 pour l'instant.

    Après avoir passer la journée sur un bug dont je ne trouve pas la raison, je m'en remet à ce forum. Peut-être qu'une personne, ici, pourra m'aider....

    Mon problème est le suivant: sous IE (et seulement sous IE, car sous Firefox, tout fonctionne correctement), le message d'erreur "Erreur de syntaxe" apparaît à trois reprises, les unes à la suite des autres. Après avoir retracé l'erreur, il apparaît qu'elle se produirait suite à ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while ($res = mysql_fetch_array($result))
       $arr[] = $res;
    $jsonresult = json_encode($arr);
    et plus précisément sur le

    Ce message apparaît à trois reprises car 3 enregistrements sont sélectionnés suite à une requête.

    Si quelqu'un a une suggestion à ce sujet, elle sera la bienvenue.
    Merci d'avance.

  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
    Bonjour,

    "Erreur de syntaxe" ne ressemble pas a un retour d'erreur de PHP.
    Tu pourrais nous donner l'erreur entiere et un peu plus de code ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 6
    Par défaut
    Tout d'abord, merci pour ton aide.

    Ensuite, effectivement "Erreur de syntaxe" n'est pas une erreur php.
    C'est en fait un message d'erreur retourner par le "super" débugueur intégré d'Internet Explorer.... Et donc, tu te doutes bien que les détails tels que le numéro de la ligne ou autres infos disponibles ne sont pas très fiables.

    Le retour du php étant récupéré par du code javascript, ce pourrait être une erreur javascript, mais ce n'est ici pas le cas, malheureusement, car je n'aurais peut-être pas eu autant de mal si ça l'avait été.

    Quoiqu'il en soit, je suis persuadée que l'erreur vient du morceau de code que j'ai fournit car une fois cette ligne commenté, l'erreur n'apparaît plus du tout. Par ailleurs, du fait qu'elle apparaisse par 3 fois appuie ma "théorie", puisque la requête concerné renvoie bien 3 enregistrements.

    Si malgré cela, quelques doutes subsistent et que tu désires tout de même un peu plus de code, je te le donnerais volontiers, mais pas avant demain matin, car je n'ai pas les sources avec moi mais au boulot.

  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
    Ah d'accord si c'est IE qui proteste, c'est forcemment une erreur javascript.
    Il vaut donc peut etre mieux commencer a regarder du code de la source HTML et une fois que le probleme est trouvé, regarder dans le code PHP qui le produit.

    Dans Firefox tu as une console d'erreur qui remonte les problemes Javascript, elle t'en dira peut etre plus.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 6
    Par défaut
    Et non justement, car, comme je le disais lors de mon tout premier post, sous Firefox l'erreur ne se produit pas, donc impossible de la retracer dans la console

    Je te mets tout de même, ci-dessous, le code javascript et php, au cas où cela pourrait t'aider (j'utilise un Framework Ajax Design ExtJS):

    --> Javascript

    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
    33
    34
    35
     
    function			init_client_offers_data_store()
    {
    	/** Liste des offres du client **/
    	client_offers_data_store = new Ext.data.Store
    	({
    		id: 'client_offers_data_store',
    		proxy: new Ext.data.HttpProxy
    		({
    			url: './php/client.php',
    			method: 'POST'
    		}),
    		baseParams:
    		{
    			task: "GET_CLIENT_OFFERS", 
    			id_client: id_client
    		},
    		reader: new Ext.data.JsonReader
    		(
    			{
    				totalProperty: 'total',
    				root: 'results'				
    			},
    			[
    				{name: 'id_offre', type: 'string', mapping: 'id_offre'},
    				{name: 'num', type: 'int', mapping: 'num'},
    				{name: 'annee', type: 'string', mapping: 'annee'},
    				{name: 'agence', type: 'string', mapping: 'agence'},
    				{name: 'contact', type: 'string', mapping: 'contact'},
    				{name: 'libelle', type: 'string', mapping: 'libelle'},
    				{name: 'statut', type: 'string', mapping: 'statut'}
    			]
    		)
    	});
    }
    --> PHP

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    function			getClientOffers()
    {
    	if (isset($_POST['id_client']))
    	{
    		$id_client = $_POST['id_client'];
     
    		$query = 'SELECT offre.id_offre as id_offre, offre.num, offre.annee, agence.nom as agence, CONCAT(contacts.nom, \' \', contacts.prenom) as contact, offre.libelle as libelle, statut.intitule as statut 
    				FROM offre
    					INNER JOIN agence ON offre.id_agence = agence.id_agence 
    					INNER JOIN contacts ON offre.id_contact = contacts.id_contact 
    					INNER JOIN statut ON offre.id_statut = statut.id_statut 
    				WHERE offre.id_client = ' . $id_client . ' 
    				ORDER BY offre.annee DESC, offre.num DESC';
    		$result = mysql_query($query) or die("Could not execute query: " . $query);
    		isValid(($result = mysql_query($query)), $query, __FILE__, __LINE__);
    		$nb_rows = mysql_num_rows($result);
     
    		$start = $_POST['start'];
    		$end = $_POST['limit'];
     
    		$limit_query = $query . " LIMIT " . $start . "," . $end;		
    		isValid(($result = mysql_query($limit_query)), $limit_query, __FILE__, __LINE__);
     
    		if ($nb_rows > 0)
    		{
    			while ($res = mysql_fetch_array($result))
    				$arr[] = $res;
    			$jsonresult = json_encode($arr);
     
    			echo '({"total":"'. $nb_rows .'","results":'. $jsonresult .'})';
    		}
    		else
    			echo '({"total":"0", "results":""})';
    	}
    	else
    	{
    		header('HTTP/1.1 400 Bad Request', true, 400);
    		die("Erreur lors de l'envoie des paramètres par la méthode POST.");
    	}
    }

  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Les caractères spéciaux (',") de tes champs ne pourrisent-ils pas la valeur générée par ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $jsonresult = json_encode($arr);

+ 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