Update

Résolu/Fermé
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 - Modifié par t671 le 13/08/2015 à 18:14
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 - 15 août 2015 à 15:42
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

jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
Modifié par jordane45 le 14/08/2015 à 02:37
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
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 11
Modifié par t671 le 15/08/2015 à 11:30
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
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
15 août 2015 à 11:35
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
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 11
15 août 2015 à 15:42
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