Bonjour,

J'ai créé un formulaire qui prend 2 seuils, une durée et des commentaires.
Dans la base de données, les types sont les suivants: les 2 seuils sont en FLOAT, la durée en INT et les commentaires en TEXT.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
if(isset($_POST['confirmation'])){
//seuil_min
    if(isset($_POST['seuil_min'])){$seuil_min=safe($_POST['seuil_min']);}
    else{$seuil_min ="NULL";}
//seuil_max
    if(isset($_POST['seuil_max'])){$seuil_max=safe($_POST['seuil_max']);}
    else{$seuil_max ="NULL";}
//duree
    if(isset($_POST['duree'])){$duree=($_POST['duree']);}
    else{$duree ="NULL";}
//commentaire
    if($_POST['commentaire']!=""){$commentaire=safe($_POST['commentaire']);}
    else{$commentaire ="NULL";}
 
    $numfiche = $_POST['current_fiche'];
    //echo $numfiche ;
    /* On teste si une réponse existe déjà */
    $affich = "SELECT * FROM uni_reponses
        WHERE iduser='".$_SESSION['iduser']."' and idcritere=$numfiche";
    $result = mysql_query($affich) or die("erreur sql");
 
    // Si pas de réponse on insert
    if(mysql_numrows($result)==0){
    $query="INSERT INTO `uni_reponses` (`seuil_min`, `seuil_max` ,`duree`, `commentaire`, `idcritere`, `iduser`, `date`,`heure`) 
    VALUES ( '$seuil_min', '$seuil_max' ,'$duree','$commentaire', $numfiche,".$_SESSION['iduser'].", curdate() , current_time())";
    mysql_query($query,$connection);
    // sinon update
    }else{
        $query="UPDATE `uni_reponses` SET `seuil_min`=$seuil_min , `seuil_max`= $seuil_max , `duree`= $duree ,`commentaire`='$commentaire', `date`= curdate(), `heure`=current_time() 
        WHERE iduser='".$_SESSION['iduser']."' and idcritere=$numfiche";
        mysql_query($query,$connection);
    }
//=======================================================================//
// Vérification si une réponse existe déjà pour la fiche demandée  
//=======================================================================//
 
$affich = "SELECT * FROM uni_reponses
    WHERE iduser='".$_SESSION['iduser']."' and idcritere=$numfiche";
    $result = mysql_query($affich) or die("pas de chance");
 
$prec_validite = '';
$prec_faisabilite = '';
$prec_suffisant = '';
$prec_seuilmin= '';
$prec_seuilmax= '';
$prec_duree = '';    
$prec_coms = '';    
// On les actives si des réponses existent déjà
if(mysql_numrows($result)!=0){
    $tab = mysql_fetch_array($result);
    $prec_validite = $tab[0];
    $prec_faisabilite = $tab[1];
    $prec_suffisant= $tab[2];
    $prec_seuilmin = $tab[3];
    $prec_seuilmax = $tab[4];
    $prec_duree = $tab[5];    
    $prec_coms = $tab[6];
}
 
/* On défini la valeur du commentaire dès maintenant */
if($prec_seuilmin!= '' AND $prec_seuilmin!= 'NULL'){$valeur_comsmin=$prec_seuilmin;}else{$valeur_comsmin="";}
if($prec_seuilmax!= '' AND $prec_seuilmax!= 'NULL'){$valeur_comsmax=$prec_seuilmax;}else{$valeur_comsmax="";}
if($prec_duree!= '' AND $prec_duree!= 'NULL'){$valeur_duree=$prec_duree;}else{$valeur_duree="";}
if($prec_coms!= '' AND $prec_coms!= 'NULL'){$valeur_coms=$prec_coms;}else{$valeur_coms="";}
 
<tr><td> <div class="centrage"> Inférieure ou égale à  <TEXTAREA cols ="12" rows="1" name="seuil_min"><?php echo $valeur_comsmin;?> </TEXTAREA></div></td></tr>
 
    <tr><td> <div class="centrage">Supérieure ou égale à  <TEXTAREA cols ="12" rows="1" name="seuil_max"><?php echo $valeur_comsmax;?></TEXTAREA> </td></tr></table>
Lorsque je rentre une donnée dans mon formulaire tout se passe bien. Mais si je souhaite la modifier en supprimant la valeur mise précédemment alors il me met l'erreur suivante:
UPDATE `uni_reponses` SET `seuil_min`= , `seuil_max`= , `duree`= NULL ,`commentaire`='NULL', `date`= curdate(), `heure`=current_time() WHERE iduser='259' and idcritere=31

Je souhaiterais donc que la valeur NULL se mette dans la base si seuil_max="".

Surtout que mon code marche très bien pour les commentaires

Merci d'avance pour votre aide