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 syntax mysql


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 20
    Par défaut Erreur de syntax mysql
    Bonjour,
    Je travaille sur une fonction qui permettrai de redistribuer des accès à un certain type de personne (les RAP). J'ai donc utilisé un while pour sélectionner les noms des RAP (et seulement de ceux-ci) et rendre effectif la mise en accès des chiffrage pour ceux-ci.
    Seulement cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $nom=mysql_result($res,$i,0);
    ne marche apparement pas, et je ne sais pas pourquoi.

    Au final j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      "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 'XXXXX,'lecture/ecriture')' at line 1"
    XXXXX correspond au nom du premier RAP.

    Voici le programme complet :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <?php
    include('include/MySQL.php');
    $cnx=connect();
     
    if (!isset($_POST['id']))
    {
    	$id=0;
    	echo"effacement<br/>";
     
    	echo '<form action="accesv2.php" method="post">';
    	echo'<input type="hidden" name="id" value="'.$id.'">';
    	echo'<input type="submit" name="continuer" value="continuer">';
    	echo'</form>';
    }
    else
    {
    		$req_rap= "select nom from utilisateur where isRAP=1";
    		$res=sendSQL($cnx,$req_rap);
    		$test=mysql_num_rows($res);
     
    	$query="select idchiffrage from chiffrage";
    	$resultat=sendSQL($cnx,$query);
    	$nbr=mysql_num_rows($resultat);
    	$n=$_POST['id'];
    	$id=$n+100;
    	$nbr_req=1;
    	echo '<table>
    			<tr><td>';
     
    	$i=0;
     
     
    	while($test>$i)
    	{
    		$nom=mysql_result($res,$i,0);	
    		while($n <= ($nbr-1) and $n < $id)
    		{
    			$idchiffrage=mysql_result($resultat,$n,'idchiffrage');
    			$query="insert into acces (id_acces, idchiffrage, nom, droit) values ('',$idchiffrage ,$nom,'lecture/ecriture')";
    			$res=sendSQL($cnx,$query);
    			echo "chiffrage n° $idchiffrage -- ";
    			echo "n° $n <br/>";
    			$n++;
    			$nbr_req=$nbr_req+5;
    		}
    		$i++;
    	}
    	echo "$nbr_req requetes sql <br/>";
    	echo '</td>';
    	echo'<td VALIGN=TOP align=center>';
     
    	if($n!=$nbr)
    	{
    		echo '<form action="accesv2.php" method="post">';
    		echo'<input type="hidden" name="id" size="6" value="'.$id.'">';
    		echo'<input type="submit" name="continuer" value="continuer">';
    		echo'</form>';
    	}
    	else
    	{
    		echo "<b> les acces ont été redistribués </b>";
    	}
    	echo'</td></tr></table>';
     
    } 
     
    ?>

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Tu as omis des guillements:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query="insert into acces (id_acces, idchiffrage, nom, droit) values ('','$idchiffrage' ,'$nom','lecture/ecriture')";

  3. #3
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 20
    Par défaut
    Ah oui exact ! Mais de là on en arrive à l'erreur originale :

    "Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\wamp\www\chiffrage\accesv2.php on line 37"

    Ce message apparait 7 fois par pages... Et l'attribution des accès n'a pas lieu.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    tu ne test pas si ta requête renvoie bien un résultat ou pas (donc fausse ou pas), active le mysql.trace_mode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('mysql.trace_mode', true);

  5. #5
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 20
    Par défaut
    Apparement non.

    "Warning: (null)(): 1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0"

    Il ne comprend pas ma variable $nom c'est ça ?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    lit bien la doc de mysql_free_result

    le trace_mode est a mettre juste avant ton mysql_connect

  7. #7
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 20
    Par défaut
    J'ai essayé de rajouter un mysql_free_result($res); mais ça n'a fait que rajouter des erreurs...

    Ensuite le trace mode ne renvois rien...

Discussions similaires

  1. erreur de syntaxe Mysql sur jointure ?
    Par evevev dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/08/2010, 17h00
  2. [MySQL] Erreur de syntaxe MySQL
    Par Yuumu dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/12/2008, 18h19
  3. Erreur de syntaxe MySQL
    Par lola13 dans le forum Requêtes
    Réponses: 19
    Dernier message: 23/12/2008, 17h15
  4. [MySQL] (Encore une) Erreur de syntaxe MySQL
    Par n1n0x dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/04/2008, 18h30
  5. Erreur de syntaxe MySQL
    Par lynal dans le forum Requêtes
    Réponses: 9
    Dernier message: 30/05/2006, 10h31

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