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 :

Condition distinguer champ vide


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Shivas
    Inscrit en
    Juin 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut Condition distinguer champ vide
    Bonjour,

    Je cherche à effectuer une condition sur plusieurs champs, en distinguant un champ vide d'un champ plein. Je m'explique :
    j'ai un formulaire ou l'utilisateur saisit des ingrédients à l'heure actuel j'exécute une requête qui me remplit tous les champs de la table alors que le champ est vide. Par exemple
    ingredient1 :farine
    ingredient2 : œufs
    ingredient3 : vide
    J'ai essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (empty($ingredient1) or empty ($ingredient2) or empty ($ingredient3)){
    }
    else 
    $recup = $_Post[$ingredient1);
    Le champ ingredient1 n'est pas récupéré. Comment puis-je procéder ?

    Merci

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Essaye ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if ($ingredient1=="" || $ingredient2=="" || $ingredient3=="")
    {
     
    }else{
            $recup = $_Post[$ingredient1];
    }

  3. #3
    Membre confirmé Avatar de Shivas
    Inscrit en
    Juin 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut
    Ça ne fonctionne pas c'est a dire que lorsqu'un champ est vide le code s'arrête alors que ingrédient2 peut être égal a quelque chose mais pas ingredient3 et de ce fait ingredient2 n'est pas remplit dans ma table. J'ai effectué le code suivant
    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
     
    if ($ingredient1=="" || $ingredient2=="" || $ingredient3=="")
    {
    }
    else{
     
    // Boucle pour verifier si champ existe
    $test1 = ("SELECT nom from ingredient where nom = '$ingredient1'");
    $result1 = mysql_query($test1);
     
    if( mysql_num_rows($result1) == 0 ) { 
     
       mysql_query("INSERT INTO ingredient (nom) VALUES ('$ingredient1')");
     
       }
    .....} // ainsi de suite jusqu'à l'ingredient3}

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour
    Tu peut utiliser un tableau pour récupérer tes champs, de telle sorte que tu n'auras qu'à faire une boucle de traitement
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Ingrédient 1 : <input type="text" name="ingredient[]">
    Ingrédient 2 : <input type="text" name="ingredient[]">
    Ingrédient 3 : <input type="text" name="ingredient[]">
    et tu récupères les valeurs dans le tableau $_POST['ingredient']
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    if (isset($_POST['ingredient']))
    {
    $liste_ingredients = $_POST['ingredient'];
     foreach ($liste_ingredients as $ingredient)
     {
       $test = ("SELECT nom from ingredient where nom = '$ingredient'");
       $result = mysql_query($test) or die ('erreur sur '.$test.'<br/>'.mysql_error());
     
       if( mysql_num_rows($result) == 0 ) { 
     
         mysql_query("INSERT INTO ingredient (nom) VALUES ('$ingredient')") or die (mysql_error());
     
       }
     }
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre confirmé Avatar de Shivas
    Inscrit en
    Juin 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut
    A quel moment dois-je déclarer mes variables ? parce que dans mon code .html si je met ingredient[] comment puis-je récupérer ma variable ingredient1 dans ma page php. Moi dans la page php j'avais déclaré mes variables qui récupéré le contenu des champs mais avec la méthode que tu me propose je ne voit pas bien comment procéder.
    Merci

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bon j'explique : ce que je te propose est une solution de remplacement. Au lieu d'avoir des variables/champs ingredient1, ingredient2.. tu construit un tableau ingredient qui contient tous les champs. Ce qui fait qu'à la place de $_POST['ingredient1'], tu récupères $_POST['ingredient'][0] et ainsi de suite...

    Tu peux donc traiter tout ça dans une boucle qui fait la vérification et l'ajout éventuel pour chaque ingrédient posté c'est-à-dire pour chaque élément du tableau...

    Est-ce plus clair ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. Condition sur champs vide
    Par DevLqncer dans le forum MySQL
    Réponses: 2
    Dernier message: 14/04/2015, 15h43
  2. [WD17] Condition sur champ vide ou non
    Par ameura1 dans le forum WinDev
    Réponses: 7
    Dernier message: 12/09/2014, 17h51
  3. [MySQL] Requete MySQL avec condition => retourne champs vide
    Par spark_legion dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/08/2011, 15h00
  4. [MySQL] Condition verifier champ vide
    Par Shivas dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 25/04/2009, 16h35
  5. Condition Where prenant aussi les champs vide ?
    Par RudyWI dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 30/05/2008, 10h06

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