IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

insertion valeur null dans base de données [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 12
    Par défaut insertion valeur null dans base de données
    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

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 98
    Par défaut
    Bonjour,

    Tu indiques la requête qui est mis en cause mais pas le code d'erreur.
    Quel est le message d'erreur complet ?

  3. #3
    Membre averti
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 12
    Par défaut
    C'était l'update qui ne fonctionnait pas. J'ai donc mis directement la requête. Que faudrait-il que je mette dans le die pour voir l'erreur déjà?
    Mais je pense que l'erreur sera que le seuil_min n'est pas trouvé.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 98
    Par défaut
    ta variable $seuil_min est bien initialisé en début de script.
    Tu dois avoir des champs de ta bdd dont le null est interdit.

    Tu peux rajouter un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo mysql_errno($connection) . ": " . mysql_error($connection);
    avant la ligne 33.

    Après il faut mieux utiliser une connexion PDO car mysql_query, mysql_errno, mysql_error sont obsolètes depuis PHP 5.5.0

  5. #5
    Membre averti
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 12
    Par défaut
    Voici l'erreur que j'obtiens

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1064: 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 ' `seuil_max`= 0 , `duree`= NULL ,`commentaire`='NULL', `date`= curdate(), `heure' at line 1

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 98
    Par défaut
    Peux tu rajouter un
    après la ligne 30 et poster ce qui s'affiche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/07/2013, 17h00
  2. Insertion de date dans base de données
    Par amine2208 dans le forum Langage
    Réponses: 1
    Dernier message: 06/04/2013, 19h57
  3. [MySQL] Insertion lien image dans base de données
    Par Addict` dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/02/2009, 13h40
  4. [E-03] insertion de lignes dans base de données
    Par alainmante dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/10/2008, 18h01
  5. Réponses: 9
    Dernier message: 28/08/2007, 09h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo