Problème PHP/MySQL : concaténation

Résolu/Fermé
polarbird Messages postés 105 Date d'inscription vendredi 24 juin 2011 Statut Membre Dernière intervention 16 décembre 2023 - 21 avril 2014 à 18:29
polarbird Messages postés 105 Date d'inscription vendredi 24 juin 2011 Statut Membre Dernière intervention 16 décembre 2023 - 22 avril 2014 à 18:49
Bonjour,
J'ai un problème de concaténation voici mon code :
edit_tuto_ok.php
<html>
<head>
<link href="../style.css" rel="stylesheet" title="Style" />
<title>Panel d'administration - Modifier tuto</title>
</head>
<body>
<h1>Modifier tuto</h1>
<?php
  //connection au serveur

$cnx = mysql_connect( "", "", "" ) ;
$db = mysql_select_db( "" ) ;
  //sélection de la base de données:

 
$id = $_POST["id"];
$titre=$_POST["titre"];
$auteur=$_POST["auteur"];
$niveau=$_POST["niveau"];
$barre=$_POST["barre"];
$tuto=$_POST["tuto"];
$timestamp=$_POST["timestamp"];
$update=$_POST["update"];
$vues=$_POST["vues"];

$datasql = "UPDATE tuto SET id = '.$id.',titre = '.$titre.',auteur = '.$auteur.',niveau = '.$niveau.',barre = '.$barre.',tuto = '.$tuto.',timestamp = '.$timestamp.',update = '.$update.',vues = '.$vues.' WHERE id = '.$id.' " ;

  $requete = mysql_query($datasql, $cnx) or die( mysql_error() ) ;

  if($requete)
  {
    echo("<p>La modif est faite</p>") ;
  }
  else
  {
    echo("La modification à échouée") ;
  }
?>
</body>
</html>

Quand j'exécute ce code depuis ce formulaire
edit_tuto.php
<html>
<head>
<link href="../style.css" rel="stylesheet" title="Style" />
<title>Panel d'administration - Modifier tuto</title>
<script language="javascript" type="text/javascript">
   function insert_texte(texte)
   {
    //Emplacement
       var ou = document.getElementsByName("tuto")[0];
	//Texte à insérer + espace
       var phrase = texte +"";
	//Contenu déjà présent + Texte à insérer
       ou.value += phrase;
	//Positionnement du curseur
       
   }
</script>
<script language="javascript" type="text/javascript">
function bascule(elem)
   {
   etat=document.getElementById(elem).style.display;
   if(etat=="none"){
   document.getElementById(elem).style.display="block";
   }
   else{
   document.getElementById(elem).style.display="none";
   }
   }
</script>
</head>
<body>
<?php
$cnx = mysql_connect( "", "", "" ) ;
$db = mysql_select_db( "" ) ;
$id  = $_GET["id"] ;
$sql = "SELECT * FROM tuto WHERE id = ".$id ;
$requete = mysql_query( $sql, $cnx ) ;
if($result = mysql_fetch_object($requete))
  {
?>
<form action="edit_tuto_ok.php" method="post">

<input type="hidden" name="id" value="<?php echo($id) ;?>">

<input type="text" placeholder="Titre" name="titre" size="20" value="<?php echo($result->titre) ;?>"/><br />

<input type="text" placeholder="Auteur" name="auteur" size="20" value="<?php echo($result->auteur) ;?>" /><br />

<select name="niveau">
<option value="<?php echo($result->niveau) ;?>" selected><?php echo($result->niveau) ;?></option>
<option value="Facile">Facile</option>
<option value="Moyen">Moyen</option>
<option value="Difficile">Difficile</option>
</select><br />

<input type="text" value="<?php echo time(); ?>" name="update" size="20" readonly />

<input type="text" value="<?php echo($result->vues); ?>" name="vues" size="20" readonly /><br />

<input type="hidden" name="timestamp" value="<?php echo($result->timestamp); ?>">

<input type="range" name="barre" value="<?php echo($result->barre) ;?>" min="33.3" max="100" step="33.3" /><br />

<div style="border:1px solid white;width:200px;">
<a href="#" onclick="bascule('div1');return false;">Pratique</a>
<div id='div1' style='display:none;font-size:12px;font-family:arial;color:white;'>
<a href="#" onclick="insert_texte('<a href= target= ></a>')">URL</a> <a href="#" onclick="insert_texte('<br>')">Saut de ligne</a> <a href="#" onclick="insert_texte('<br />')">Alinea</a> <a href="#" onclick="inser_texte('<img src= title= ')">Image</a>
</div></div>

<div style="border:1px solid white;width:200px;">
<a href="#" onclick="bascule('div2');return false;">Polskie litery</a>
<div id='div2' style='display:none;font-size:12px;font-family:arial;color:white;'>
<a href="#" onclick="insert_texte('ą')">ą</a> <a href="#" onclick="insert_texte('ę')">ę</a> <a href="#" onclick="insert_texte('&oacute;')">ó</a> <a href="#" onclick="insert_texte('ć')">ć</a> <a href="#" onclick="insert_texte('ł')">ł</a> <a href="#" onclick="insert_texte('ń')">ń</a> <a href="#" onclick="insert_texte('ś')">ś</a> <a href="#" onclick="insert_texte('ź')">ź</a> <a href="#" onclick="insert_texte('ż')">ż</a> <a href="#" onclick="insert_texte('Ą')">Ą</a> <a href="#" onclick="insert_texte('Ę')">Ę</a> <a href="#" onclick="insert_texte('&Oacute;')">Ó</a> <a href="#" onclick="insert_texte('Ć')">Ć</a> <a href="#" onclick="insert_texte('Ł')">Ł</a> <a href="#" onclick="insert_texte('Ń')">Ń</a> <a href="#" onclick="insert_texte('Ś')">Ś</a> <a href="#" onclick="insert_texte('Ź')">Ź</a> <a href="#" onclick="insert_texte('Ż')">Ż</a>
</div></div>

<div style="border:1px solid white;width:200px;">
<a href="#" onclick="bascule('div3');return false;">Accents</a>
<div id='div3' style='display:none;font-size:12px;font-family:arial;color:white;'>
<a href="#" onclick="insert_texte('&eacute;')">é</a> <a href="#" onclick="insert_texte('&Eacute;')">É</a> <a href="#" onclick="insert_texte('&ccedil;')">ç</a>
</div></div>

<textarea name="tuto" rows="30" cols="60" placeholder="Tuto" style="font-family:arial;font-size:12px;color:black;"><?php echo($result->tuto) ;?></textarea><br />
<input type="reset" value="Effacer"/>
<input type="submit" value="Valider"/>
</form>
<?php
}
?>
</body>
</html>

j'obtiens ce message de la part de MySQL :
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'update = '..',vues = '.0.' WHERE id = '.2.'' at line 1

Merci de m'aider car vraiment je m'arrache les cheveux !
Cordialement,
polarbird

2 réponses

younesase Messages postés 80 Date d'inscription samedi 21 avril 2012 Statut Membre Dernière intervention 27 avril 2014 4
21 avril 2014 à 18:39
la requête Mysql doit être comme ça :
$datasql = "UPDATE tuto SET id = '$id',titre = '$titre',auteur = '$auteur',niveau = '$niveau',barre = '$barre',tuto = '$tuto',timestamp = '$timestamp',update = '$update',vues = '$vues' WHERE id = '$id' " ;


on ne met pas de point (concaténation) parce que tu utilise des apostrophe et nom des guillemets ,
voici un exemple de l'utilisation de concaténation :
$variable = "text = ".$text;

Dans le cas suivant on ne met pas de point de concaténation :
$variable = "text='$text' , valeur='$valeur' ..";
2
polarbird Messages postés 105 Date d'inscription vendredi 24 juin 2011 Statut Membre Dernière intervention 16 décembre 2023 1
21 avril 2014 à 19:20
Merci pour ta réponse younesase !
J'ai essayé ta requête mais ça ne marche toujours pas !
0
younesase Messages postés 80 Date d'inscription samedi 21 avril 2012 Statut Membre Dernière intervention 27 avril 2014 4
Modifié par younesase le 21/04/2014 à 20:37
donne moi l'erreur que tu reçoit quand t'as modifié la requête
0
polarbird Messages postés 105 Date d'inscription vendredi 24 juin 2011 Statut Membre Dernière intervention 16 décembre 2023 1
21 avril 2014 à 20:51
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'update = '1398104382',vues = '13' WHERE id = '1'' at line 1
0
polarbird Messages postés 105 Date d'inscription vendredi 24 juin 2011 Statut Membre Dernière intervention 16 décembre 2023 1
21 avril 2014 à 21:19
C'est bon c'est résolu : en fait on a pas le droit de nommer un champ SQL update.J'ai changé le nom c'est O.K.Merci qd même !
0
younesase Messages postés 80 Date d'inscription samedi 21 avril 2012 Statut Membre Dernière intervention 27 avril 2014 4
Modifié par younesase le 21/04/2014 à 23:03
Non tu a le droit de nommer un champs SQL update mais il faut le mettre en deux accents grave pour l'écrire tu fait : [ALT GR + 7] (deux fois)
Bon Chance pour la suite !!
0
polarbird Messages postés 105 Date d'inscription vendredi 24 juin 2011 Statut Membre Dernière intervention 16 décembre 2023 1
22 avril 2014 à 18:49
Merci younesase c'est toujours sympa un petit conseil !
0