eviter une requete dans une boucle?

eviter une requete dans une boucle? - PHP - Programmation

Marsh Posté le 20-10-2003 à 14:37:38    

Voila
 
j'aimerai savoir comment on pourrait eviter une requete dans une boucle sachant que je doit verifier
si cahque valeur dans un tableau se trouve dans la base
Et que je doit savoir quelles sont les valeurs qui se trouve ou non dans la base.
 
 
merci  d'avance
 

Reply

Marsh Posté le 20-10-2003 à 14:37:38   

Reply

Marsh Posté le 20-10-2003 à 14:40:31    

voici la requete qui se trouve dans la boucle  
 

Code :
  1. $result=odbc_exec($connODBC,"select count(CODPRO) from PRO where CODPRO='$cod_pro[$i]' AND (CODSOC=1 OR CODSOC BETWEEN 10 AND 16)" );


 :D  
 

Reply

Marsh Posté le 20-10-2003 à 14:45:59    

Saxgard a écrit :

voici la requete qui se trouve dans la boucle  
 

Code :
  1. $result=odbc_exec($connODBC,"select count(CODPRO) from PRO where CODPRO='$cod_pro[$i]' AND (CODSOC=1 OR CODSOC BETWEEN 10 AND 16)" );


 :D  
 
 

ce serait pas plus malin de récupérer tous les produits, et leur nombre dans une seule requête


---------------
http://runnerstats.net
Reply

Marsh Posté le 20-10-2003 à 14:57:39    

noldor a écrit :

ce serait pas plus malin de récupérer tous les produits, et leur nombre dans une seule requête


 
ouais mais comment faire?
 
le nombre de produit est variable  
la base "PRO" ou je test si le produit existe est assez consequente.
 
et j'ai essayé un truc du genre (exemple pour 2 produits):
 

Code :
  1. $result=odbc_exec($connODBC,"select cod_pro from PRO where (CODPRO='$cod_pro[0]' OR CODPRO='$cod_pro[1]')  AND (CODSOC=1 OR CODSOC BETWEEN 10 AND 16)" );

 
 
je boucle sur le nombre d eproduit a tester et je met ca dans une variable  pour obtenir ca :
(CODPRO='$cod_pro[0]' OR CODPRO='$cod_pro[1]')  
 
 
ensuite je voualis bouclé le resultat de la requete pour les stocker dans un tableau (par exemple) et ensuite tester si mon produit existe dans le tableau
 
PB: la requete est trop longue a l'execution
 
bon je merde peut etre dans mon résonnement  
 

Reply

Marsh Posté le 20-10-2003 à 15:08:02    

et pourquoi cette requete rame?
 

Code :
  1. $result=odbc_exec($connODBC,"select distinct CODPRO from PRO where (CODPRO='AA' OR CODPRO='BB') AND (CODSOC=1 OR CODSOC BETWEEN 10 AND 16)" );


 
comment l'optimiser?
 
avce ousans disctinct ca rame

Reply

Marsh Posté le 21-10-2003 à 09:06:44    

$result=odbc_exec($connODBC,"select count(CODPRO) from PRO where (CODSOC=1 OR CODSOC BETWEEN 10 AND 16)" ) GROUP BY CODPRO;

Reply

Marsh Posté le 21-10-2003 à 09:51:40    

ratibus a écrit :

$result=odbc_exec($connODBC,"select count(CODPRO) from PRO where (CODSOC=1 OR CODSOC BETWEEN 10 AND 16)" ) GROUP BY CODPRO;
 


 
merci  ;o)

Reply

Marsh Posté le 21-10-2003 à 12:32:14    

ça fait ce que tu veux ?

Reply

Marsh Posté le 21-10-2003 à 12:46:19    

ratibus a écrit :

ça fait ce que tu veux ?


bin enfin de compt j'ai virer la requete pour simplifier
j'ai trouver un autre moyen  , mais je te remercie quand meme
ca pourra toujours me servir quand je devrait faire un count

Reply

Sujets relatifs:

Leave a Replay

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