Problème avec syntax SQL

Résolu/Fermé
Jeremsky94 Messages postés 20 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 30 mai 2012 - 5 mai 2012 à 17:23
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 - 7 mai 2012 à 09:54
Bonjour,

Alors je vous explique mon problème, j'ai créer mon système de news qui comporte une modification et une suppression de la news.
La suppression marche super bien, mais la modification non.

J'explique ce problème.
Donc à chaque modification du titre, quand je met un accent ben sa ne l'ajoute pas et sa me met cet erreur : 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 'amélioration', contenue = '

Voici le code du formulaire modifier.php :
<?php
  //connection au serveur:
  $cnx = mysql_connect( "localhost", "funados", "" ) ;
 
  //sélection de la base de données:
  $db = mysql_select_db( "funados" ) ;
  //récupération de la variable d'URL,
  //qui va nous permettre de savoir quel enregistrement modifier
  $id  = $_GET["idnews"] ;
 
  //requête SQL:
  $sql = "SELECT *
            FROM newsfa
	    WHERE id = ".$id ;
 
  //exécution de la requête:
  $requete = mysql_query( $sql, $cnx ) ;
  //affichage des données:
  if( $result = mysql_fetch_object( $requete ) )
  {
  ?>
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
    <script src="ckeditor/_samples/sample.js" type="text/javascript"></script>
    <link href="ckeditor/_samples/sample.css" rel="stylesheet" type="text/css" />

  <form name="insertion" action="modification_accepter.php" method="POST">
  <input type="hidden" name="id" value="<?php echo($id) ;?>">
  <table border="0" align="center" cellspacing="2" cellpadding="2">
    <tr align="center">
      <td>Titre : </td>
      <td><input type="text" name="titre" value="<?php echo($result->titre) ;?>"></td>
    </tr>
    <tr align="center">
      <td>contenue</td>
      <td><textarea cols="80" id="editor1" type="text" name="contenue" rows="10"><?php echo($result->contenue) ?></textarea>
      <script type="text/javascript">
      
        CKEDITOR.replace( 'editor1' );

      </script></td>
    </tr>
    <tr align="center">
      <td colspan="2"><input type="submit" value="modifier"></td>
    </tr>
  </table>
</form>
<?php } ?>


Et voici le code d'acceptation :
<?php
  //connection au serveur
  $cnx = mysql_connect( "localhost", "funados", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "funados" ) ;
  //récupération des valeurs des champs:
  //nom:
  $titre     = $_POST["titre"] ;
  //prenom:
  $contenue = $_POST["contenue"] ;
 
  //récupération de l'identifiant de la personne:
  $id         = $_POST["id"] ;
 
  //création de la requête SQL:
  $sql = "UPDATE newsfa
            SET titre         = '$titre', 
	          contenue     = '$contenue'
           WHERE id = '$id' " ;
 
  //exécution de la requête SQL:
  $requete = mysql_query( $sql, $cnx) or die( mysql_error() ) ;
 
  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
    echo("La modification à été correctement effectuée") ;
  }
  else
  {
    echo("La modification a echouee") ;
  }
?>


Voilà merci par avance de votre aide que vous pourrez me parvenir.
Au revoir.
A voir également:

5 réponses

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
5 mai 2012 à 17:35
Salut,

Est ce qu'un stripslashes() sur les $_POST ne résoudrais pas le problème?
  //nom:
  $titre     =  stripslashes($_POST["titre"]) ;
  //prenom:
  $contenue =  stripslashes($_POST["contenue"] );
0
Jeremsky94 Messages postés 20 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 30 mai 2012 1
5 mai 2012 à 17:36
J'avais essayé mais c'est toujours pareil, sa fait toujours la même erreur :x
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
5 mai 2012 à 17:48
Merdouille, il n'y aurai pas une histoire au niveau des magic_quotes_gpc?

Perso et avec l'utilisation de CKEDITOR je procède de cette façon :
	<textarea name="commentaire" rows="10" cols="50"><?php
	if (!empty($_POST["commentaire"])) {
		echo stripcslashes(htmlspecialchars($_POST["commentaire"],ENT_QUOTES));
	}
	?></textarea>

Le traitement
$commentaire = htmlspecialchars(stripcslashes($_POST["commentaire"]));

L'enregistrement
'".mysql_real_escape_string($commentaire)."'
0
Jeremsky94 Messages postés 20 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 30 mai 2012 1
5 mai 2012 à 18:00
Cela ne marche toujours pas :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jeremsky94 Messages postés 20 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 30 mai 2012 1
5 mai 2012 à 19:04
J'ai réussi ;)
Mon pote ma aider il fallait que je rajoute un Mysql escape string
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
7 mai 2012 à 09:54
Ce que j'avais indiqué pour l'enregistrement dans le poste plus haut :)..
0