Modification des enregistrements

Bonjour,

je désire de faire un tableau des données et à chaque fois quand je veux faire une modification de valeur je clique sur le bouton modifier et je modifie le valeur , j'ai essayé avec ce code mais je rentre un nouveau valeur dans le tableau il m'affiche que le modification a été correctement effectué et rien ne change ni dans la bd ni dans le tableau affiché dans la page web , il garde toujours les même valeurs , quelqu'un peut m'aider d'améliorer mon code . Merci d'avance
Code source:

<?php
require_once('dbconnect.php');
?>
<html>
<head>
<title>Liste des Clients</title>
<style type="text/css">
<!--
.Style1 {
color: #0000FF;
font-weight: bold;
}
.Style2 {color: #FFFFFF}
body {
background-color: #FFF;
}
body,td,th {
color: #F00;
}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
<div id="table">
<table id="tab" border="1px" bordercolor="#666666">
<th>Mois</th> <th>Valeur</th><th> Modifiez</th>
<?php

$tab = array();
/* -----------Modification des enregistrements---------------- */

if(isset($_REQUEST['modifier']))

{
$mois=$_REQUEST['mois'];
$mois=$_REQUEST ['année'];

$valeur=$_REQUEST['valeur'];

$requete=("Update mois set mois ='".$mois."' WHERE valeur =".$valeur."");
if($requete)
{
echo("La modification à été correctement effectuée") ;
}
else
{
echo("La modification à échouée") ;
}

$db->query('SELECT * FROM mois');

}

/* -----------Affichage des enregistrements---------------- */

$rep = $db->query('SELECT * FROM mois');

while ( $d = mysqli_fetch_array($rep))
{

?>
<form action=<?php echo $_SERVER['PHP_SELF'];?> method="post">

<?php echo "<tr>";

echo "<td><input type='hidden' name='mois' value=" . $d['mois'] . " />". $d['mois']."</td>";

echo "<td><input type='text' name='valeur' style='width:250px;' value='" . $d['valeur'] . "'/></td>";

echo "<td><input class='mod' type='submit' value='Modifier' name='modifier'/> </td>";

echo"</tr>";
?>
</form>
<?php
}
?>
</table>

</body>
</html>

5 réponses

  1. Contributeur
    $requete=("Update mois set mois ='".$mois."' WHERE valeur =".$valeur."");

    peut être que ça marchera mieux comme ça :

    $requete=$db->query("Update mois set mois ='".$mois."' WHERE valeur =".$valeur."");
    1. j'ai essayé avec votre ligne de code mais ça marche pas c'est le même problème , il m'affiche comme message que la modification est fait mais rien ne se passe :(
      1. Contributeur
        si valeur est alphanumérique :
        $requete=$db->query("Update mois set mois ='".$mois."' WHERE valeur ='".$valeur."'");


        sinon il faut mettre la requête dans une variable, et l'afficher, puis l'exécuter dans phpmyadmin pour voir le soucis.
        1. voilà je fais echo de la requête pour voir il va m'afficher quoi
          $requete=$db->query("Update mois set mois ='".$mois."' WHERE valeur ='".$valeur."'");
          echo $requete ;
          du coup quand je clique sur le bouton modifier il modifie rien mais il m'affiche ça :
          1 La modification à été correctement effectuée
          je sais pas d'ou vient le 1 ???
          et j'ai essayé de faire l'update dans la partie qsl de la db juste pour tester il m'affiche
          ça comme erreur :
          You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[value-1],'valeur'=[value-2] WHERE 1' at line 1

          je sais pas quoi faire :(