[RESOLU] Comment faire une requête à l'intérieur d'une requête ?

Comment faire une requête à l'intérieur d'une requête ? [RESOLU] - PHP - Programmation

Marsh Posté le 19-11-2005 à 14:06:02    

Bonjour
voila mon problème :
je voudrais chercher la présence de deux variables dans une requete :
 
 requete 1 :
 
$input1 = "le";         //premier mot à chercher
$input2 = "chien";    //deuxième mot à chercher
 
je cherche "le" :
 
$requete1 = " SELECT *  FROM `base` WHERE `champ1` REGEXP '$input1' OR `champ2` REGEXP '$input1' OR `champ3` REGEXP '$input1' ORDER BY 'cle' DESC ";
$result1 = mysql_query($select,$link)  or die ('PAF DANS TON NEZ');
 
et maintenant à l'intérieur des résultats trouvés je voudrais trouver "chien"...
comment dois-je taper la requète ?
 
Merci BEAUCOUP


Message édité par erwan83 le 19-11-2005 à 22:23:51

---------------
http://www.ypikay.com
Reply

Marsh Posté le 19-11-2005 à 14:06:02   

Reply

Marsh Posté le 19-11-2005 à 14:38:47    

Il semble qu'il s'agisse d'une "construction dynamique de requête".
En pratique, il suffit de faire :

Code :
  1. $requete1 = " SELECT *  FROM `base` WHERE `champ1` REGEXP '$input1' OR `champ2` REGEXP '$input1' OR `champ3` REGEXP '$input1'
  2. if ($input2 != "" )
  3.   $requete1 .= " AND `champ1` REGEXP '$input2' ... blabla"
  4. $requete1 .= " ORDER BY 'cle' DESC ";
  5. $result1 = mysql_query($requete1, $link)  or die ('PAF DANS TON PIF');


Message édité par olivthill le 19-11-2005 à 14:40:53
Reply

Marsh Posté le 19-11-2005 à 14:42:35    

donc la ligne 4 reprend la requete de départ et additionne la deuxieme c'est ca ?


---------------
http://www.ypikay.com
Reply

Marsh Posté le 19-11-2005 à 15:40:31    

Ok mais ca donne une requete sur une requete
donc avec une BdD contenant 1500 enreg. ca fait 1500 x 1500 requetes...
je suis parti prendre un café et ca tourne toujours... :??:


---------------
http://www.ypikay.com
Reply

Marsh Posté le 19-11-2005 à 15:52:01    

Heu.... ça tourne toujours
 
si si si  :sleep:  
 
voici le code que j'ai balancé :
 

Citation :


$requete1 = " SELECT *  FROM `BASE` WHERE `motcle` REGEXP '$mot[0]' OR `match` REGEXP '$mot[0]' OR `description` REGEXP '$mot[0]' ORDER BY 'cle' DESC ";
$result = mysql_query($requete1,$link)  or die (' ');
 
while ($mot[1] != "" ) {
 
$requete1 .= " AND `motcle` REGEXP '$mot[1] OR `match` REGEXP '$mot[1]' OR `description` REGEXP '$mot[1]' ORDER BY 'cle' DESC ";
 
$requete11 =  " SELECT *  FROM `$requete1` WHERE `motcle` REGEXP '$mot[1]' OR `match` REGEXP '$mot[1]' OR `description` REGEXP '$mot[1]' ORDER BY 'cle' DESC ";
}


 
 
 
doit y avoir une cou..... quelque part...


Message édité par erwan83 le 12-11-2017 à 22:17:11

---------------
http://www.ypikay.com
Reply

Marsh Posté le 19-11-2005 à 22:23:10    

bon j'ai trouvé une autre solution :
requete 1 <= un mot à chercher      
requete 2 <= deux mots à chercher  
requete 3 <= trois mots à chercher =>  
requete 4  => ca va pas non ? va donc chez google !
Warffff
 
 
special thanks to olivthill


Message édité par erwan83 le 12-11-2017 à 22:17:48

---------------
http://www.ypikay.com
Reply

Sujets relatifs:

Leave a Replay

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