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 :

Tester l'existence d'une chaine de caractère


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 227
    Points : 65
    Points
    65
    Par défaut Tester l'existence d'une chaine de caractère
    Bonjour,

    Je fais un test assez simple pour vérifier si il existe une chaine de caractère dans un champs de la BDD:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (empty($doc[$a]))
    {
    echo 'vide'	
    }
    $doc est la variable qui récupère ce qu'il y a dans le champs correspondant de ma BDD.
    $a boucle de 1 à nombre de produits par page

    Le code ci dessus m'affiche tout le temps 'vide' alors que certains champs sont vides (ils ne comprennent pas de chaine de caractère) d'autres non.

    Quand je fais tous simplement:

    Ca m'affiche bien ce qu'il y a dans la BDD tout en tenant compte de la boucle ($a).

    Voilà je comprends pas vraiment le problème...

    Edit:

    Exemples:
    $a=1 --> $doc= "test"
    $a=2 --> $doc=""


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (empty($doc[$a]))
    {
    echo 'vide'	
    }
    else
    {echo 'plein';}
    Ce code devrait m'afficher: "plein" et "vide"

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour debugguer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (empty($doc[$a]))
    {
    echo 'vide'
    }
    else
    {echo 'plein';
    }
    echo  ' : ' . var_dump($doc[$a]) . '<br>';

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 227
    Points : 65
    Points
    65
    Par défaut
    Bonjour,

    alors ceci fonctionne et m'affiche correctement ce qu'il y a dans la base de données:
    Exemple pour le 1er:
    Et quand c'est vide:
    Je suis tout aussi perplexe, car l'affichage se passe correctement mais le test avec une simple boucle if ne fonctionne pas...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,

    Pourrions-nous avoir un code un peu plus complet stp?

    Merci

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 227
    Points : 65
    Points
    65
    Par défaut
    Salut,

    Voici la partie de code concerné:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for($a = 1; $a <$count_product+1; $a++) {
      echo .$doc[$a]. '<br>';
      if (empty($doc[$a]))
          {
          echo 'vide'
          }
          else
          {echo 'plein';
          }
    }

  6. #6
    Invité
    Invité(e)
    Par défaut
    Tu peux vérifier s'il y a bien un ; après cette instruction?



  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 227
    Points : 65
    Points
    65
    Par défaut
    Tout à fait, il y a bien un ';'.

    Mon objectif est simplement d'afficher dans un cas précis (quand un champs de la BDD contient une chaine de caractère) une phrase standard avec l'info de la BDD, dans le cas contraire laisser un blanc.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bon il va falloir fournir ton code car si je me base sur ce morceau de code ça fonctionne de mon côté

    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
     
    cat testArray.php
    <?php
    $doc = array("test","","toto","","tutu","mimi","","");
     
     
    for($i=0;$i<count($doc);$i++)
            {
                    if(empty($doc[$i])){
                            echo $i.": empty\n";
                    }
                    else {
                            echo $i.": full\n";
                            }
            }
    var_dump($doc);
    ?>
    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
     
    php testArray.php
    0: full
    1: empty
    2: full
    3: empty
    4: full
    5: full
    6: empty
    7: empty
    array(8) {
      [0]=>
      string(4) "test"
      [1]=>
      string(0) ""
      [2]=>
      string(4) "toto"
      [3]=>
      string(0) ""
      [4]=>
      string(4) "tutu"
      [5]=>
      string(4) "mimi"
      [6]=>
      string(0) ""
      [7]=>
      string(0) ""
    }

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 227
    Points : 65
    Points
    65
    Par défaut
    Merci mygale1978, je viens de comprendre mon erreur à l'aide de ton bout de code, j'avais une erreur de syntaxe.

    Tout est ok à présent donc merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/11/2010, 19h10
  2. [RegExp] Tester l'existence d'une chaine avec les regexp
    Par mustapha_aim dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/07/2010, 11h48
  3. Réponses: 2
    Dernier message: 05/07/2010, 16h06
  4. Tester l'existance d'une chaine dans une chaine
    Par Xenon03 dans le forum ASP
    Réponses: 3
    Dernier message: 07/10/2009, 10h17
  5. Réponses: 4
    Dernier message: 24/04/2007, 22h58

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