Bonjour, j'ai une petite question.

Pourquoi ce premier code fonctionne parfaitement :
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
44
   //reception du message
   if(isset($_POST['phrase']) AND $_POST['phrase'] != "" ){
 
      $phrase = $_POST['phrase'];
      $intensitedumessage = 40;
      $auteur="humain";
      //insertion du message dans la liste des phrases
      $ins=$bdd->prepare('INSERT INTO phrases (contenu,auteur) VALUES (?,?) ');
      $ins->execute(array($phrase, $auteur));
 
      //envoyer chaque lettre de la phrase dans la fonction stimulus
      while($phrase != ""){
         $recu = substr($phrase,0,1);
         $sens = "lecture";
         $intensite = $intensitedumessage;
 
         if($sens == "lecture"){
         echo($recu . " ");
         //est-ce que ce recu est connu ?
         $iddurecu = 0 ;
         echo("123");
         $monades = $bdd->query("SELECT * FROM monades");
         echo("456");
         while ($monade = $monades->fetch())
         {
            echo("yo");
            if($monade['contenu'] == $recu){
               $iddurecu = $monade['id'];
            }
            else{
               echo("berk");
            }
 
         }
         echo($iddurecu);
         if($iddurecu == 0){ //le recu est inconnu donc on l'ajoute
            $ins=$bdd->prepare('INSERT INTO monades (contenu) VALUES (?) ');
            $ins->execute(array($recu));
         }
         //puis on
      }
         $phrase = substr($phrase,1);
      }
   }
Alors que celui-ci ne fonctionne pas et s'arrête à écho("123") :

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
44
45
46
   //fonction stimulus
   function stimulus($recu,$sens,$intensite){
      if($sens == "lecture"){
         echo($recu . " ");
         //est-ce que ce recu est connu ?
         $iddurecu = 0 ;
         echo("123");
         $monades = $bdd->query("SELECT * FROM monades");
         echo("456");
         while ($monade = $monades->fetch())
         {
            echo("yo");
            if($monade['contenu'] == $recu){
               $iddurecu = $monade['id'];
            }
            else{
               echo("berk");
            }
 
         }
         echo($iddurecu);
         if($iddurecu == 0){ //le recu est inconnu donc on l'ajoute
            $ins=$bdd->prepare('INSERT INTO monades (contenu) VALUES (?) ');
            $ins->execute(array($recu));
         }
 
      }
   }
 
 
   //reception du message
   if(isset($_POST['phrase']) AND $_POST['phrase'] != "" ){
 
      $phrase = $_POST['phrase'];
      $intensitedumessage = 40;
      $auteur="humain";
      //insertion du message dans la liste des phrases
      $ins=$bdd->prepare('INSERT INTO phrases (contenu,auteur) VALUES (?,?) ');
      $ins->execute(array($phrase, $auteur));
 
      //envoyer chaque lettre de la phrase dans la fonction stimulus
      while($phrase != ""){
         stimulus( substr($phrase,0,1) , "lecture" , $intensitedumessage );
         $phrase = substr($phrase,1);
      }
   }
Il est interdit de faire une requête sql à l'intérieur d'une fonction ?
C'est très bizarre