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
    0
    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 !
      0
      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
        0
    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 !
      0