pblm de boucle

pblm de boucle - PHP - Programmation

Marsh Posté le 15-04-2007 à 17:16:11    

$bTrouve=false
Ceci est une affectation, pas une comparaison :o  
 
Pour t'arrêter lorsqu'il n'y a plus d'éléments ou lorsque $bTrouve est passé à true, je mettrais plutôt : [:figti]  
 
while( ($fetch = mysql_fetch_array($exec)) && (! $bTrouve)) {
 ...
}

Reply

Marsh Posté le 15-04-2007 à 17:16:11   

Reply

Marsh Posté le 15-04-2007 à 17:19:21    


essaye avec while(($fetch = mysql_fetch_array($exec)) && $bTrouve===false)

 

Sinon le meilleur moyen de faire c'est un SELECT champQuiContientLeNomDeTaPhoto from tableQuiContientLeNomDeTaPhoto WHERE champQuiContientLeNomDeTaPhoto=nomDeTaPhoto

 

Avec nomDeTaPhoto sécurisé avec mysql_espace_string sinon bonjour les injections SQL


Message édité par WiiDS le 15-04-2007 à 17:20:09
Reply

Marsh Posté le 15-04-2007 à 17:28:42    


Traduction :

 

Tant qu'il reste des valeurs a récupérer OU que bTrouve est égal a faux

 

C'est a dire que :

 

-S'il ne reste plus de valeurs a récupérer mais que bTrouve est égal a faux on continue la boucle (qui ne sert plus a rien)
-Si bTrouve est égal a vrai dans ce cas la recherche va continuer jusqu'a ce que la recherche soit finie, ce qui est inutile

 

Donc ET convient mieux car :

 

S'il reste des valeurs a récupérer mais que bTrouve est égal a vrai, ca s'arrête
Si bTrouve reste a faux , la boucle continue
Et si bTrouve est égal a vrai et que la recherche est finie (cad si la boucle trouve ton truc a la dernière entrée),  ca s'arrête


Message édité par WiiDS le 15-04-2007 à 17:30:55
Reply

Marsh Posté le 15-04-2007 à 17:35:28    


Essaye tu verras bien

Reply

Marsh Posté le 15-04-2007 à 18:25:26    

Ben essayes, mais je trouve que ta solution s'pas la plus simple :o

Reply

Marsh Posté le 15-04-2007 à 19:26:33    

Il y a un "!", qui signifie "NOT" en booléen.
Donc, il continue tant que :
- mysql_fetch_array... est vrai
ET
- "! $bTrouve" est vrai, c'est à dire $bTrouve est faux
 
Il suffit que l'un des 2 cas ne soit plus vérifié pour qu'on s'arrête :)

Reply

Marsh Posté le 17-04-2007 à 22:22:03    

Un petit LIKE pourrait te sauver de cette horrible boucle .. par exemple:

 

"SELECT photo_url_gr FROM photos WHERE photo_url_gr LIKE '%".$nomPhoto."'"


http://dev.mysql.com/doc/refman/5. [...] ching.html

Reply

Sujets relatifs:

Leave a Replay

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