[PHP] Générer une condition if

Générer une condition if [PHP] - Programmation

Marsh Posté le 27-06-2002 à 14:54:27    

J'arrive po!!!
J'arrive à me demerder pour qu'à partir d'un array, j'obtienne
une variable avec  
$cond = "OR mot = "variable array" OR mot = "variable arrey 2"...";
 
mais je voudrais après faire une condition avec  
 
if (!(xxxxxxxxxxx))
en ayant les xxxx remplacés par le contenu de $ cond...
J'y arrive po!  :cry:

Reply

Marsh Posté le 27-06-2002 à 14:54:27   

Reply

Marsh Posté le 27-06-2002 à 16:04:27    

toto21 a écrit a écrit :

J'arrive po!!!
J'arrive à me demerder pour qu'à partir d'un array, j'obtienne
une variable avec  
$cond = "OR mot = "variable array" OR mot = "variable arrey 2"...";
 
mais je voudrais après faire une condition avec  
 
if (!(xxxxxxxxxxx))
en ayant les xxxx remplacés par le contenu de $ cond...
J'y arrive po!  :cry:  




 
si j ai bien compris que ce que tu ve faire
laisse moi te dire que c pas une bonne idée de + ca doit etre vachement chiant a maintenir...
 
de + une question bien posé est une question qui obtiens des reponses


Message édité par veryfree le 27-06-2002 à 16:11:15
Reply

Marsh Posté le 27-06-2002 à 16:05:42    

toto21 a écrit a écrit :

J'arrive po!!!
J'arrive à me demerder pour qu'à partir d'un array, j'obtienne
une variable avec  
$cond = "OR mot = "variable array" OR mot = "variable arrey 2"...";
 
mais je voudrais après faire une condition avec  
 
if (!(xxxxxxxxxxx))
en ayant les xxxx remplacés par le contenu de $ cond...
J'y arrive po!  :cry:  




 
 
 :heink:  
Moi je pige pas


---------------
Le Tyran
Reply

Marsh Posté le 27-06-2002 à 16:34:38    

Reply

Marsh Posté le 27-06-2002 à 19:05:08    

Cherchez po à savoir pourquoi je fais ça...
Je voudrais juste savoir comment faire un truc du genre :
if(xxxx)
 
et faire en sorte qu'à la place de xxx j'ai le contenu d'une variable $var par exemple...
C'est si compliqué que ça?
Merci!

Reply

Marsh Posté le 27-06-2002 à 19:35:21    

Alors je veux préciser ce que je veux faire...
J'ai un champ de saisie, dans lequel je tape une recherche...
J'éxecute ma recherche sur une base de données, mais avant ça, je voudrais exclure tout les mots infèrieurs à 2 lettres ainsi que tous les mots que j'aurais défini dans mon array (et que je pourrais donc modifier facilement). Ces mots sont des mots du genre "une", "est", "des", "donc"...
C'est pour ça que je fais une instruction if !() que je voudrais générer en fonction de mon array... Une idée??????
D'autres propositions?

Reply

Marsh Posté le 27-06-2002 à 19:46:23    

tu cherches à compliquer il me semble...
 

Code :
  1. $tab= explode(' ',$var);
  2. if (count($tab>0)){
  3.   $query="select ... from ... WHERE mot='". $tab[0] ."'";
  4.   for ($i=1, $max= count($tab); $i<$max; $i++){
  5.     if(strlen($tab[$i]>2){
  6.        $query.= " OR mot='". $tab[$i] . "'";
  7.     }
  8.   }
  9.   $res= mysql_query($query,$conexion);
  10. }
  11. else{
  12.   echo "mots incorrects";
  13. }


---------------
...oups kernel error...
Reply

Marsh Posté le 27-06-2002 à 19:52:29    

toto21 a écrit a écrit :

Alors je veux préciser ce que je veux faire...
J'ai un champ de saisie, dans lequel je tape une recherche...
J'éxecute ma recherche sur une base de données, mais avant ça, je voudrais exclure tout les mots infèrieurs à 2 lettres ainsi que tous les mots que j'aurais défini dans mon array (et que je pourrais donc modifier facilement). Ces mots sont des mots du genre "une", "est", "des", "donc"...
C'est pour ça que je fais une instruction if !() que je voudrais générer en fonction de mon array... Une idée??????
D'autres propositions?




 
Je te conseilles de faire ça directement dans ta requete sql.
Pour les mots de 2 lettres max utilises les expressions régulières (REGEXP pour MySQL), pour la liste de mots utilises NOT LIKE, tu construit ta requete en parcourant ton array. Tous les 2 commes conditions dans ta requete.
 
Voilà la direction à prendre que je te conseilles.
Si tu utilises MySQL: http://dev.nexen.net/docs/mysql/an [...] tching.php
 
Edit: Bah, e m'emmeles un put les pinceaux avec REGEXP et NOT LIKE... Utilises REGEXP pour le minimum de 2 caractères et ensuite mot!='...' comme l'a précisé ethernal au dessus.. Fais un petit mélange de nos 2 réponses, il semblerais que ethernal t'ai donné la solution pour trouver les mots contenu dans ton array, et que tu veux le contraire


Message édité par hum hum le 27-06-2002 à 20:02:00
Reply

Marsh Posté le 27-06-2002 à 20:01:17    

ethernal a écrit a écrit :

tu cherches à compliquer il me semble...
 

Code :
  1. $tab= explode(' ',$var);
  2. if (count($tab>0)){
  3.   $query="select ... from ... WHERE mot='". $tab[0] ."'";
  4.   for ($i=1, $max= count($tab); $i<$max; $i++){
  5.     if(strlen($tab[$i]>2){
  6.        $query.= " OR mot='". $tab[$i] . "'";
  7.     }
  8.   }
  9.   $res= mysql_query($query,$conexion);
  10. }
  11. else{
  12.   echo "mots incorrects";
  13. }






Ca d'accord, mais je ne voit pas du tout où est-ce que tu exclue ls mots auquel je fais surtout allusion (une, est, des, donc...)

Reply

Marsh Posté le 27-06-2002 à 20:49:23    

:??:

Reply

Marsh Posté le 27-06-2002 à 20:49:23   

Reply

Marsh Posté le 27-06-2002 à 21:02:16    

Reply

Marsh Posté le 27-06-2002 à 21:44:53    

toto21 a écrit a écrit :

 
Ca d'accord, mais je ne voit pas du tout où est-ce que tu exclue ls mots auquel je fais surtout allusion (une, est, des, donc...)




 
là :  
 

Code :
  1. if(strlen($tab[$i]>2){
  2.       $query.= " OR mot='". $tab[$i] . "'";
  3.    }


 
c'est la condition qui dit s'il faut prendre en compte le mot tapé par l'utilisateur ou pas.
tu peux la changer en  
if ( !preg_match($array_des_mots_a_exclure, $tab[$i] && strlen($tab[i])>2 ){


---------------
...oups kernel error...
Reply

Marsh Posté le 27-06-2002 à 21:47:48    

ok merci...
sinon une autre question...
est-ce qu'il est possible de SUPPRIMER d'un array une entrée qui remplirait une condition? Quelle commande?

Reply

Marsh Posté le 27-06-2002 à 21:56:33    

si je me souviens bien tu fais un unset($tab[x]);


---------------
...oups kernel error...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed