Update

Résolu
t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   -  
t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   -
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. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
  2. t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   11
     
    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. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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
  3. t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   11
     
    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