pblm de boucle - PHP - Programmation
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
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
Marsh Posté le 15-04-2007 à 18:25:26
Ben essayes, mais je trouve que ta solution s'pas la plus simple
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
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
Marsh Posté le 15-04-2007 à 17:16:11
$bTrouve=false
Ceci est une affectation, pas une comparaison
Pour t'arrêter lorsqu'il n'y a plus d'éléments ou lorsque $bTrouve est passé à true, je mettrais plutôt :
while( ($fetch = mysql_fetch_array($exec)) && (! $bTrouve)) {
...
}