Bonjour a tous,
Je suis en train de m'arracher les cheveux depuis deux jours

, je sais que la solution est sous mes yeux, mais je ne la trouve pas. Je me décide donc a faire appel à votre aide. Voici mon pb :
Via une interface CMS que je suis en train de réaliser, je gère l'ajout, la modification et la supression de données (des News par exemple) dans ma base mysql.
Dans ma page modify.php, je récupère une liste d'entrées de ma base (listing des news), je selectionne une des entrées (la news que je veux modifier) et cela m'affiche toutes les données présentes dans la base (tous les détails de la news) afin que je puisse les modifier. J'effectue les modif et valide. La base se met à jour avec mes nouvelles données modifiées.
Seul petit pb, j'ai une liste de checkbox dans mon form qui pose pb : je peux tout a fait cocher une checkbox qui ne l'était pas auparavant

(cela fonctionne et me mets a jour la base), par contre, je ne peux pas décocher une checkbox

(ou du moins, cela me la décoche sur le form mais ne me le prends pas en compte dans ma base lors de l'UPDATE SET). Vous me suivez ?
Voici mon code :
Code PHP :
<?php
include("connect.php");
@mysql_connect ($server, $login, $password)
or die ("Erreur : connexion a la base de donnees impossible");
@mysql_select_db($base)
or die ("Erreur : pas de base de donnees ".$base);
if (isset($modify_value)) {
$modify_query = "UPDATE ma_base SET ";
$k = 0;
while(list($variable, $value) = each($HTTP_POST_VARS)) {
//make the query
if (($variable != "radio_field") && ($variable != "modify_value")) {
if ($k) {
$modify_query .= ", $variable='$value'";
} else {
$modify_query .= "$variable='$value'";
}
$k++;
}
}
$modify_query .= " WHERE $radio_field='$modify_value'";
$result_query = mysql_query ($modify_query);
}
if (!isset($modify)) {
?>
<html>
<head>
<title>Modify list page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<center>
<form action="modify.php" method="post">
<p class="Style1">Selectionnez une News et cliquez sur modifier</p>
<table width="484">
<?php
$result_query = mysql_query ("SELECT * FROM ma_base");
// submit the query
$num_rows = mysql_numrows($result_query);
// number of rows
$i = 0;
while($i != $num_rows) {
?>
<tr>
<td>
<input type="radio" name="modify" value="<?php echo mysql_result($result_query,$i,"id");?>">
</td>
<td>
Titre de la News :
<?php echo mysql_result($result_query,$i,"titre"); ?>
</td>
</tr>
<?php
$i++;
}
?>
</table>
<input type="submit" value="Modifier la News selectionnée">
<input type="hidden" name="radio_field" value="id">
</form>
</center>
</body>
</html><?php
mysql_close();
} else {
?>
///////////////////////////////////////////////////////////
//////////// PB A PARTIR D'ICI JE PENSE ///////////////////
///////////////////////////////////////////////////////////
///// Je récupère les données des checkboxes 1, 2 et 3 ///////
<?PHP
$requete_checkboxes="SELECT * FROM ma_base WHERE $radio_field='".$modify."'";
$res=mysql_query($requete_checkboxes)or die('error query');
$data=mysql_fetch_array($res);
$ckb1 = $data['ckb1'];
$ckb2 = $data['ckb2'];
$ckb3 = $data['ckb3'];
////////////////////////////////////////////////////
$modify_query = "SELECT * FROM ma_base WHERE $radio_field='".$modify."'";
$result_query = mysql_query ($modify_query);
?>
<html>
<head>
<title>Modify page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<center>
<form name="modify" action="modify.php" method="post">
<table>
<tr>
<td>Catégorie</td>
</tr>
<tr>
<td>
<input type="checkbox" name="ckb1" value="1" <?php
if($ckb1 == 1 ) // Si 1, on pré-coche la case
{
echo 'checked="checked"';
}
else
{
echo '';
}
?> /> Catégorie 1<br>
<input type="checkbox" name="ckb2" value="1" <?php
if($ckb2 == 1 ) // Si 1, on pré-coche la case
{
echo 'checked="checked"';
}
else
{
echo '';
}
?> /> Catégorie 2<br>
<input type="checkbox" name="ckb3" value="1" <?php
if($ckb3 == 1 ) // Si 1, on pré-coche la case
{
echo 'checked="checked"';
}
else
{
echo '';
}
?> /> Catégorie 3<br>
</td>
</tr>
<tr>
<td>Titre</td>
</tr>
<tr>
<td>
<input type="text" name="titre" value="<?php echo mysql_result($result_query,0,"titre");?>" >
</td>
</tr>
<tr>
<td>Texte</td>
</tr>
<tr>
<td>
<textarea name="texte" cols="62" rows="10" >
<?php echo mysql_result($result_query,0,"fr_texte");?>
</textarea>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><input type="submit" value="Modifier cette News" >
</td>
<td>
<input name="Réinitialiser" type="reset" value="Effacer les champs">
</td>
</tr>
</table>
<input type="hidden" name="radio_field" value="<?php echo $radio_field;?>">
<input type="hidden" name="modify_value" value="<?php echo $modify;?>">
</form>
</center>
</body>
</html>
<?php
mysql_close();
}
?>
Je ne vois pas d'où vient le pb.
Par avance, merci pour votre aide.
Golant.

PS: Pour plus de lisibilité, J'ai simplifié le form (14 champs en réel qui marchent tous sauf pour ces fichus retraits de données checkbox).