Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1245 connectés 

  FORUM HardWare.fr
  Programmation

  [PHP] Générer une condition if

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Générer une condition if

n°167268
Toto21
Posté le 27-06-2002 à 14:54:27  profilanswer
 

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:

mood
Publicité
Posté le 27-06-2002 à 14:54:27  profilanswer
 

n°167404
veryfree
Posté le 27-06-2002 à 16:04:27  profilanswer
 

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
n°167406
LetoII
Le dormeur doit se réveiller
Posté le 27-06-2002 à 16:05:42  profilanswer
 

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
n°167445
goueg
De passage
Posté le 27-06-2002 à 16:34:38  profilanswer
 
n°167599
Toto21
Posté le 27-06-2002 à 19:05:08  profilanswer
 

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!

n°167616
Toto21
Posté le 27-06-2002 à 19:35:21  profilanswer
 

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?

n°167622
ethernal
Chercheur de vérité...
Posté le 27-06-2002 à 19:46:23  profilanswer
 

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...
n°167624
hum hum
Posté le 27-06-2002 à 19:52:29  profilanswer
 

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
n°167626
Toto21
Posté le 27-06-2002 à 20:01:17  profilanswer
 

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...)

n°167665
Toto21
Posté le 27-06-2002 à 20:49:23  profilanswer
 

:??:

mood
Publicité
Posté le 27-06-2002 à 20:49:23  profilanswer
 

n°167668
zion
Plop
Posté le 27-06-2002 à 21:02:16  profilanswer
 
n°167683
ethernal
Chercheur de vérité...
Posté le 27-06-2002 à 21:44:53  profilanswer
 

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...
n°167685
Toto21
Posté le 27-06-2002 à 21:47:48  profilanswer
 

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?

n°167688
ethernal
Chercheur de vérité...
Posté le 27-06-2002 à 21:56:33  profilanswer
 

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


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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [PHP] Générer une condition if

 

Sujets relatifs
[PHP] Problème avec if !(PHP sait il dialoguer avec d'autres languages ???
[ PHP ] - retour sur l'index automatique !?![PHP] Diriger les visiteurs suivant leur login+MDP stockés sur une BdD
[PHP,MySQL] Connexion persistante ou non ?[PHP] passage de valeurs entre deux instances de la même appli
[PHP] probleme pour faire un upload de fichiers [c OK now ! ][PHP] Récupérer les valeur d'un array dans des variables?
[ PHP ] Undefined variableBonjour tt le monde !!! J'ai une erreur en PHP mysql ....
Plus de sujets relatifs à : [PHP] Générer une condition if


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR