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 :

Chatbot - Condition if et else


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut Chatbot - Condition if et else
    Bonjour,

    je voudrais faire un chatbot tout simple mais je ne comprend pas pourquoi une condition ne s'applique pas, voici ma page qui traite le message envoyer :

    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
    <?php
     
    $message = $_POST['message'];
     
    //verifie si le message est vide
     
    if (!empty($message)){
     
    include'bdd.php';
                    //si le message est enregistrer comme une question ou une reponse :
                    $req = $dbh -> query("SELECT * FROM conversation WHERE question='$message' OR reponse='$message'");
                    while ( $data = $req->fetch()){
     
                       //si le message est dans la table question on affiche la reponse :
                    if ($message == $data['question'] ){
     
                        $reponse = " Vous :".$data['question']." </br> Robot :".$data['reponse']." </br></br>";
                        echo $reponse;
     
                    }
                     //si le message est dans la table reponse on affiche la question :
                     else if ($message == $data['reponse'] ){
     
                        $reponse = " Vous :".$data['reponse']." </br> Robot :".$data['question']." </br></br>";
                        echo $reponse;
     
                    }
                    //si le message est different des questions et des reponses :
                     else if ($message != $data['question'] && $message != $data['reponse']){
     
                        $reponse = "Robot : je ne connais pas encore, apprend moi ! </br></br>";
                        echo $reponse;
     
                     }
     
                    }
     
     
    }
    else {
        $reponse = "Je ne peux pas comprendre si tu ecrit a l'encre invisible !";
        echo $reponse;
    }
    voila donc les deux première condition marche bien mais quand je met un message qu'il ne connais pas, donc ni dans la table "question" ni dans la table "réponse" il n'affiche pas le echo ($reponse = "Robot : je ne connais pas encore, apprend moi ! </br></br>"

    j'ai essayer avec "else"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    else{    
         $reponse = "Robot : je ne connais pas encore, apprend moi ! </br></br>";
         echo $reponse;
         }
    mais je n'ai toujours pas d'affichage ni de message d'erreur.
    CDT

  2. #2
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Salut,

    Le else ne doit pas être dans la boucle While, car si le résultat de la requête est vide, alors tes conditions ne n’exécuterons pas.

    Vérifie, avant le while, si le résultat de ta requête est vide, si c'est vide, alors le robot parle, sinon, c'est soit une question, soit une réponse obligatoirement.


    Penses à protéger ta variable message pour éviter les injections sql !

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

Discussions similaires

  1. [Vxi3] Condition If . then . else discard
    Par Marshall06 dans le forum Deski
    Réponses: 4
    Dernier message: 29/04/2011, 14h59
  2. condition if et else
    Par Tee shot dans le forum Langage
    Réponses: 8
    Dernier message: 07/09/2010, 14h24
  3. condition if then else en jsf
    Par tongo dans le forum JSF
    Réponses: 2
    Dernier message: 06/08/2009, 17h57
  4. condition if then else dans un select
    Par bringer dans le forum SQLite
    Réponses: 5
    Dernier message: 11/07/2009, 01h25
  5. Probleme Condition IF et ELSE
    Par arround dans le forum Langage
    Réponses: 2
    Dernier message: 23/10/2005, 02h21

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