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 :

Problème dans des "IF" avec des chaines de caractères


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 12
    Points
    12
    Par défaut Problème dans des "IF" avec des chaines de caractères
    Bonjour


    Mon but est de faire une zone de recherche qui va me trouver dans ma base de données les bons produits.
    pour celà j'ai plusieurs options :
    Soit l'utilisateur entre 2 mots clés correspondant au produit ce qui corresponde (selon moi à ce if) -->

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if  ((strcmp($tok,$row0[0])) && (strcmp($tok2,$row6[0])) && (strcmp($tok3,$rien))   ){
    Soit l'utilisateur entre 1 mot clé correspondant au produit et 1 mot clé correspondant au nom :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (( (strcmp($tok,$row1[0])  && strcmp($tok2,$row2[0])) )&& (strcmp($tok3,$rien))){
    Soit l'utilisateur entre 2 mots clés correspondant au produit et un mot clé correspondant au nom :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (( strcmp($tok,$row3[0])  && strcmp($tok2,$row4[0])) && strcmp($tok3,$row5[0])){
    Ou soit l'utilisateur entre 1 seul mot clé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((strcmp($tok,$row7[0]) || strcmp($tok,$row8[0]) || strcmp($tok,$row9[0])) || (strcmp($tok2,$rien) && strcmp($tok3,$rien))){
    Avec ces "if" il n'y a que le cas où l'utilisateur entre 1 seul mot clé qui fonctionne le reste soit ça me donne pas de réponse soit une mauvaise réponse.

    Quelqu'un pourrait-il m'aider à voir où sont les problèmes dans mes "if" ?

    Merci d'avance

    Lanysteph

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 44
    Points : 20
    Points
    20
    Par défaut
    Peut-être qu'il manque un bout de code pour bien comprendre ce que tu veux faire mais pourquoi n'utilises-tu pas les requêtes de sélection des bases de données pour extraire les infos que tu recherches ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 12
    Points
    12
    Par défaut
    je fais des requêtes après dans ma base de données mais ce qui m'intéresse ici c'est de savoir comment fonctionne les "&&" et les "||" car c'est ça qui me pose problème.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 44
    Points : 20
    Points
    20
    Par défaut
    Il y a des chances pour que le reste de la ligne ne soit plus évalué suivant le résultat du premier strcmp ... teste avec des if imbriqués et regarde ce que ça donne

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Pour tester l'égalité de deux chaînes ($chaine1 et $chaine2), il vous faut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if ($chaine1 == $chaine2) {
        echo 'Elles sont identiques';
    } else {
        echo 'Elles ne sont pas identiques';
    }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (!strcmp($chaine1, $chaine2)) {
        echo 'Elles sont identiques';
    } else {
        echo 'Elles ne sont pas identiques';
    }
    En effet, je vous répète que l'égalité est marquée par une valeur de retour nulle avec la fonction strcmp.


    Julp.

Discussions similaires

  1. Réponses: 25
    Dernier message: 14/04/2015, 14h58
  2. Select et insert avec des caracteres speciaux (quote ')
    Par Paco75 dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/10/2006, 14h59

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