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

Langage PHP Discussion :

Pas d'insertion dans db si champs vide


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien en télécommunication
    Inscrit en
    Mai 2013
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien en télécommunication
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 199
    Points : 73
    Points
    73
    Par défaut Pas d'insertion dans db si champs vide
    Bonjour,
    je suis sur le point de terminer mon portail web, tout fonctionne impec mais j'ai un petit souci.
    Sur une de mes pages j'ai un formulaire avec plusieurs champs.
    Si je rempli tous les champs, ça va bien dans ma db donc là, ok.
    Le problème est que je ne vais pas toujours devoir remplir tous les champs et du coup quand je laisse un ou des champs vide ça ne va pas dans ma db.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!empty($_POST['date_enco']) && !empty($_POST['dep_enco'])
    Le problème vient probablement des if !empty
    Là, je bloque

  2. #2
    Membre régulier
    Homme Profil pro
    Technicien en télécommunication
    Inscrit en
    Mai 2013
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien en télécommunication
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 199
    Points : 73
    Points
    73
    Par défaut
    Bon,
    j'ai trouvé une solution mais est ce la bonne ?
    J'ai tout simplement enlever les sur les champs que je voulais laisser vide ...

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    salut,

    c'est de la logique : au moins un des 2 champs doit être rempli pour que cela soit valide, donc au moins un des deux champs ne doit pas être vide, donc si les deux champs sont vides alors erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (empty($_POST['date_enco']) && empty($_POST['dep_enco'])) {
        // erreur
    } else {
        // vérification de la validité des dates reçues
        // et si tout est ok alors on passe à la base de données
    }

  4. #4
    Membre régulier
    Homme Profil pro
    Technicien en télécommunication
    Inscrit en
    Mai 2013
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien en télécommunication
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 199
    Points : 73
    Points
    73
    Par défaut
    J'ai plusieurs champs sur mon formulaire mais 5 qui ne seront pas toujours remplis.
    Si je mets les sur uniquement les champs qui devront être rempli, ça ne pose pas de problème si je n'indiques pas les autres champs non obligatoires ?
    Ça fonctionne comme ça.

    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
    <?php
    session_start(); 
    require('src/connection.php');
     
    if(empty($_SESSION['connect'])){
       header('location: connection.php');
       exit();
    }
     
    else{
     
     
    if (!empty($_POST['date_enco']) && !empty($_POST['dep_enco']))
    	{
     
    	$date_encod	 			 = htmlspecialchars($_POST['date_encod']);
    	$dep_encod			         = htmlspecialchars($_POST['dep_encod']);	
    	$ville_encod			         = htmlspecialchars($_POST['ville_encod']);
    	etc .....

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    mais la manière dont tu poses le test sous-entend que si l'un des deux champs date n'est pas rempli alors ce n'est pas correct.
    Par contre, rien n'empêche que les deux soient remplis, ça c'est valide.

Discussions similaires

  1. Formulaire validé, mais pas d'insertion dans la BDD
    Par Jeanjan dans le forum Langage
    Réponses: 10
    Dernier message: 08/06/2014, 17h55
  2. [AC-2010] Pas d'insertion dans table après requête INSERT
    Par scrouet dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/03/2013, 13h39
  3. Réponses: 4
    Dernier message: 09/06/2009, 15h20
  4. [MySQL] données non insérées dans la BDD (champ vide)
    Par Selkurs dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/05/2008, 23h54
  5. [PostGreSQL] Requête d'insertion qui ajoute des champs vides
    Par civodultrebor37 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/10/2006, 15h16

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