Après plusieurs heures de prises de tête, j'ai résolu plusieurs incompréhensions que j'avais sur mon problème mais celle que je vais vous exposer me pose un gros "?" dans ma tête
Je cherche a faire un UPDATE d'un texte présent dans une page web via un panel admin :
La marche a suivre est la suivante : Sélection de la page
Une fois sélectionner il y a un formulaire, comprenant ceci
Mon scripts permettant de faire l'UPDATE sur ma base de données est le suivant
<meta charset = "utf-8">
<?php
include('loginBDD.php');
$Titre = 'Administration';
$actuel = $_POST['current'];
echo $actuel;
echo '<br>';
$nouveauText = $_POST['future'];
echo $nouveauText;
$resultat = $bdd->query("SELECT id FROM textpage WHERE contenu= '$actuel'");
$reponse = $resultat->fetch();
echo var_dump($reponse);
if ($reponse != null)
{
session_start();
if( $nouveauText == $actuel)
{
echo 'A quoi bon mettre a jour un texte identique ?';
echo'<a href="../../SFD/Administration/panelAdmin.php";>Cliquez ici pour être redirigé</a>';
}
else{
echo' </br>';
$updateText= $bdd->prepare("UPDATE textpage SET contenu ='$nouveauText' WHERE contenu= '$actuel'");
$exeText = $updateText->execute();
echo 'Le texte a été modifier avec succès';
echo'<a href="../../SFD/Administration/panelAdmin.php";>Cliquez ici pour être redirigé</a>';
}
}
else{
echo ' Impossible de modifier le texte !';
}
?>
Pour moi, mon code est correct, mais le var_dump($reponse) me signale " boolean false" donc il passe dans le dernier else et le texte ne se modifie pas.
Autre erreur : Quand je change la requete d'un scripts, admettons que je rentre
$resultat = $bdd->query("SELECT id FROM textpage WHERE id= '1'");
Effectivement il passe dans le second if et me signale que l'update a été fait mais il n'en est rien.
J'en ai donc conclu que l'erreur venait des variables : $actuel et $nouveauText qui n'arrive pas prendre leur place dans les requêtes.
Pouvez-vous m'aider ? Ai-je fait quelque chose qu'il ne fallait pas ?
Merci de l’intérêt que vous portez a mon problème !
Oui oui, cela marche parfaitement, mes autres scripts style Connexion/Deconnexion et l'affichage du texte sur les pages fonctionnent c'est pour ça je suis perdu sur cette erreur :/
Dans le formulaire ,j'arrive a afficher ce qu'il y a dans la BDD c'est pour ça que je comprend encore moins pourquoi ça marche une fois et une autre non
Toujours la même erreur, je vous copie colle ce que j’obtiens
Étude et dimensionnement de chauffage central, puissance chaudière, puissance des radiateurs, radiateur et quantitatif circulation d eau... test test
<small>boolean</small>
false
Impossible de modifier le texte !
Pourtant c'est la même requête que celle utilisé pour pre remplir la text area mais je sais pas pourquoi avec la variable $actuel ça ne fonctionne pas, je suis sur cette erreur depuis ce matin en train de modifier et re modifier pour trouver une solution
J'ai trouvé d'où vient l'erreur après une série de test .
Le problème étant que les caractère spéciaux ( accent aigue etc ) dans le formulaire, ne sont pas encodé en utf-8 ou n'apparaissent pas correctement donc a partir du moment où j'UPDATE ma BDD avec un texte comprenant ne serai-ce qu'un seul caract spéciaux, il est par la suite impossible a modifié. Sinon je peux modifié autant de fois que je veux un texte sans caract spéciaux.
Je vais maintenant essayer de comprendre pourquoi le formulaire ne prend pas en compte les caract spéciaux.
Problème résolu : Il fallait qu'il n'y ai pas de caract spéciaux au tout début dans la base de données car le formulaire les interprétais mal, une fois "nu" il suffit de les modifier grâce au script et les accents se mettent sans problème.
Merci a tout ceux qu'il m'ont aidé pour résoudre ce problème !
J'ai commencé il n'y a pas longtemps et j'arrive pas encore a trouvé la nuance entre ces deux possibilités et instinctivement je vais vers la méthode que j'ai apprise quand j'ai commencé.
ça vous dérangerai de m’expliquer pourquoi utilisé une façon, et pas une autre, les avantages etc ?
Après de nombreux problème, j'ai effectué une requête préparée et cela fonctionne parfaitement, la concaténation faisait sans doute planter l'envoie de données.
Désolé, je ne réponds pas aux questions techniques posées par MP...
Update d'un text dans une BDD
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
-=Sans Audace, Pas De Gloire=-
-=Sans Audace, Pas De Gloire=-
-=Sans Audace, Pas De Gloire=-
-=Sans Audace, Pas De Gloire=-