Update

Résolu
Bonjour,

J'essaye de faire une mise à jour de ma base :
$id = $_GET["id"];
$titre_FR = $_GET['titre_FR'];
$titre_IT = $_GET['titre_IT'];
$titre_SP = $_GET['titre_SP'];
$titre_GB = $_GET['titre_GB'];
$titre_D = $_GET['titre_D'];
$new_lien = $_GET['new_lien'];
$commentaire_FR = $_GET['commentaire_FR'];
$commentaire_IT = $_GET['commentaire_IT'];
$commentaire_SP = $_GET['commentaire_SP'];
$commentaire_GB = $_GET['commentaire_GB'];
$commentaire_D = $_GET['commentaire_D'];
 
//echo '<pre>'; print_r($_GET); echo '</pre>'; exit;

//-------------Acceptation des caractères spéciaux dans les textes---------------
$titre_FR = mysqli_real_escape_string($link, $titre_FR);
$titre_IT = mysqli_real_escape_string($link, $titre_IT);
$titre_SP = mysqli_real_escape_string($link, $titre_SP);
$titre_GB = mysqli_real_escape_string($link, $titre_GB);
$titre_D = mysqli_real_escape_string($link, $titre_D); 
$commentaire_FR = mysqli_real_escape_string($link, $commentaire_FR);
$commentaire_IT = mysqli_real_escape_string($link, $commentaire_IT);
$commentaire_SP = mysqli_real_escape_string($link, $commentaire_SP);
$commentaire_GB = mysqli_real_escape_string($link, $commentaire_GB);
$commentaire_D = mysqli_real_escape_string($link, $commentaire_D);

//----pour éviter les \ ds les msgs de réception ---------
$titre_FR = stripslashes($titre_FR);
$titre_IT = stripslashes($titre_IT);
$titre_SP = stripslashes($titre_SP);
$titre_GB = stripslashes($titre_GB);
$titre_D = stripslashes($titre_D); 
$commentaire_FR = stripslashes($commentaire_FR);
$commentaire_IT = stripslashes($commentaire_IT);
$commentaire_SP = stripslashes($commentaire_SP);
$commentaire_GB = stripslashes($commentaire_GB);
$commentaire_D = stripslashes($commentaire_D);   

if(!empty($new_lien))
{
    $result=mysqli_query($link,"UPDATE liens SET titre_FR='$titre_FR', titre_IT='$titre_IT', titre_SP='$titre_SP', titre_GB='$titre_GB', titre_D='$titre_D', lien='$new_lien', commentaire_FR='$commentaire_FR', commentaire_IT='$commentaire_IT', commentaire_SP='$commentaire_SP', commentaire_GB='$commentaire_GB', commentaire_D='$commentaire_D' WHERE id='$id'");
}             
else
{
 //echo $titre_FR; exit;
    $result=mysqli_query($link,"UPDATE liens SET titre_FR='$titre_FR', titre_IT='$titre_IT', titre_SP='$titre_SP', titre_GB='$titre_GB', titre_D='$titre_D', commentaire_FR='$commentaire_FR', commentaire_IT='$commentaire_IT', commentaire_SP='$commentaire_SP', commentaire_GB='$commentaire_GB', commentaire_D='$commentaire_D' WHERE id='$id'");
 mysqli_query($link,$result) or die('Erreur SQL !'.$result.mysqli_error());
} 


Et j'ai ce message d'erreur :
Warning: mysqli_query(): Empty query in /home/u251224104/public_html/gestion/liens/maj_bd_lien.php on line 62

Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/u251224104/public_html/gestion/liens/maj_bd_lien.php on line 62
Erreur SQL !

La ligne 62 correspond au $result après le else ......

Merci

3 réponses

  1. Modérateur
    Bonjour,

    Sors la requête de son exécution. Ainsi, tu pourras en faire un echo si besoin.

    De plus... pas besoin du if/else... car il me semble que la seule chose qui varie entre tes deux requêtes est le fait qu'il y ait un "nouveau lien" ou non.
    Tu peux donc remplacer TOUT ton bloc IF / ELSE .. par :

    Essayes ça :
    
     $str_newLien = !empty($new_lien) ?  " , lien='".$new_lien."'" : '';
    
     //echo $titre_FR; exit;
      $sql = "UPDATE liens 
                    SET titre_FR='$titre_FR'
                         , titre_IT='$titre_IT'
                         , titre_SP='$titre_SP'
                         , titre_GB='$titre_GB'
                         , titre_D='$titre_D'
                            $str_newLien
                         , commentaire_FR='$commentaire_FR'
                         , commentaire_IT='$commentaire_IT'
                         , commentaire_SP='$commentaire_SP'
                         , commentaire_GB='$commentaire_GB'
                         , commentaire_D='$commentaire_D' 
                 WHERE id='$id' ";
    
    $result = mysqli_query($link,$sql) or die('Erreur SQL !'.$result.mysqli_error() . "<br><pre> Requete : ".$sql. "</pre>");
    
    


    NB : Il me semble que le message d'erreur était lié à la ligne de code :
    mysqli_query($link,$result) or die('Erreur SQL !'.$result.mysqli_error());
    ...
    $result .. n'étant pas une REQUETE mais le "résultat" de l'instruction query précédente.... ça ne pouvait pas fonctionner !

    Cordialement,
    Jordane
    1. Bonjour,

      Je comprends pour la ligne $result, mais sur cette ligne, j'ai l'erreur
      Warning: mysqli_query(): Empty query in /home/u251224104/public_html/gestion/liens/maj_bd_lien.php on line 62

      Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/u251224104/public_html/gestion/liens/maj_bd_lien.php on line 62
      Erreur SQL !
      Requete :


      $sql=mysqli_query($link,"UPDATE liens SET titre_FR='$titre_FR', titre_IT='$titre_IT', titre_SP='$titre_SP', titre_GB='$titre_GB', titre_D='$titre_D', lien='$new_lien', commentaire_FR='$commentaire_FR', commentaire_IT='$commentaire_IT', commentaire_SP='$commentaire_SP', commentaire_GB='$commentaire_GB', commentaire_D='$commentaire_D' WHERE id='$id'");
      $result=mysqli_query($link,$sql) or die('Erreur SQL !'.$result.mysqli_error() . "<br><pre> Requete : ".$sql. "</pre>");
      


      Toutes mes variables peuvent être vide ou non !
      1. Modérateur
        Heuuy... tu as vu ce que tu as écris ... et ce que moi j'ai ecris ??
        Tu ne vois pas la différence ?? Oo
    2. J'ai recopier ce que tu m'as écrit ci-dessus :
      $id = $_GET["id"];
      $titre_FR = $_GET['titre_FR'];
      $titre_IT = $_GET['titre_IT'];
      $titre_SP = $_GET['titre_SP'];
      $titre_GB = $_GET['titre_GB'];
      $titre_D = $_GET['titre_D'];
      $new_lien = $_GET['new_lien'];
      $commentaire_FR = $_GET['commentaire_FR'];
      $commentaire_IT = $_GET['commentaire_IT'];
      $commentaire_SP = $_GET['commentaire_SP'];
      $commentaire_GB = $_GET['commentaire_GB'];
      $commentaire_D = $_GET['commentaire_D'];
      
      $titre_FR = mysqli_real_escape_string($link, $titre_FR);
      $titre_IT = mysqli_real_escape_string($link, $titre_IT);
      $titre_SP = mysqli_real_escape_string($link, $titre_SP);
      $titre_GB = mysqli_real_escape_string($link, $titre_GB);
      $titre_D = mysqli_real_escape_string($link, $titre_D); 
      $commentaire_FR = mysqli_real_escape_string($link, $commentaire_FR);
      $commentaire_IT = mysqli_real_escape_string($link, $commentaire_IT);
      $commentaire_SP = mysqli_real_escape_string($link, $commentaire_SP);
      $commentaire_GB = mysqli_real_escape_string($link, $commentaire_GB);
      $commentaire_D = mysqli_real_escape_string($link, $commentaire_D);
      
      //----pour éviter les \ ds les msgs de réception ---------
      $titre_FR = stripslashes($titre_FR);
      $titre_IT = stripslashes($titre_IT);
      $titre_SP = stripslashes($titre_SP);
      $titre_GB = stripslashes($titre_GB);
      $titre_D = stripslashes($titre_D); 
      $commentaire_FR = stripslashes($commentaire_FR);
      $commentaire_IT = stripslashes($commentaire_IT);
      $commentaire_SP = stripslashes($commentaire_SP);
      $commentaire_GB = stripslashes($commentaire_GB);
      $commentaire_D = stripslashes($commentaire_D);
      
      $str_newLien = !empty($new_lien) ?  " , lien='".$new_lien."'" : '';
      
       //echo $titre_FR; exit;
        $sql = "UPDATE liens 
                      SET titre_FR='$titre_FR'
                           , titre_IT='$titre_IT'
                           , titre_SP='$titre_SP'
                           , titre_GB='$titre_GB'
                           , titre_D='$titre_D'
                              $str_newLien
                           , commentaire_FR='$commentaire_FR'
                           , commentaire_IT='$commentaire_IT'
                           , commentaire_SP='$commentaire_SP'
                           , commentaire_GB='$commentaire_GB'
                           , commentaire_D='$commentaire_D' 
                   WHERE id='$id' ";
      
      $result = mysqli_query($link,$sql) or die('Erreur SQL !'.$result.mysqli_error() . "<br><pre> Requete : ".$sql. "</pre>");
      


      Et j'ai comme message d'erreur :
      Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/u251224104/public_html/gestion/liens/maj_bd_lien.php on line 68
      Erreur SQL !
      Requete : UPDATE liens
      SET titre_FR='...................'
      , titre_IT='...................'
      , titre_SP='.......................'
      , titre_GB=' .......................'
      , titre_D=''

      , commentaire_FR=''
      , commentaire_IT=''
      , commentaire_SP=''
      , commentaire_GB=''
      , commentaire_D=''
      WHERE id='20'


      Le "lien" est un champs comme les autres ........
      Si je modifie par :
      $commentaire_GB = stripslashes($commentaire_GB);
      $commentaire_D = stripslashes($commentaire_D);   
      
      $sql = "UPDATE liens 
                      SET titre_FR='$titre_FR'
                           , titre_IT='$titre_IT'
                           , titre_SP='$titre_SP'
                           , titre_GB='$titre_GB'
                           , titre_D='$titre_D'
                           , lien = '$new_lien'
                           , commentaire_FR='$commentaire_FR'
                           , commentaire_IT='$commentaire_IT'
                           , commentaire_SP='$commentaire_SP'
                           , commentaire_GB='$commentaire_GB'
                           , commentaire_D='$commentaire_D' 
                   WHERE id='$id' ";
      
      $result = mysqli_query($link,$sql) or die('Erreur SQL !'.$result.mysqli_error() . "<br><pre> Requete : ".$sql. "</pre>");
      

      J'ai le même messaged'erreur sur $result !