Page 1 sur 1

charger une chaine dans un if

Posté : 22 avr. 2005, 09:11
par Toony
Bonjour!

J'ai un petit problème de syntaxe.

Code : Tout sélectionner

$texte="'218' OR '265' OR '85'"; if ($detail['id_marque']==$texte) { $blabla="ok"; }
La valeur $texte est en faite générée depuis une requete sql avec un while. J'essaye d'intégrer tt ca à mon if mais ca n'ai pas pris en compte.
Et je vois pas comment faire autrement, vu que $texte est dynamique.. :?

Posté : 22 avr. 2005, 09:33
par heddicmi
Non, ça ne marchera pas comme ça... Mais ne t'inquiète pas, tu as des fonctions pour manier les chaînes de caractères, comme celle-ciqui pourrait te servir

Posté : 22 avr. 2005, 09:38
par Invité
euh....je cherche pas à manier ma chaine!

Enfin c'est peut-etre une autre fonction que if mais je voudrais que si ma valeur $detail['id_marque'] soit égale à une de celles qui sont dans ma chaine $texte, l'action s'execute ($blabla="ok").

En fait j'ai deja preparé la chaine avec des "ou" mais je sais meme pas si c'est la bonne syntaxe et si on peut le faire...... :(

Posté : 22 avr. 2005, 09:45
par heddicmi
Le truc c'est que, arrêtez moi si je me trompe, tu ne pourras pas déterminer les conditions d'un if en les plaçants dans une chaine... Le if n'interprète pas les chaines, il ne fait que les regarder...

alors que si tu fais in if(strpos(chaine1, chaine2)>0), tu sauras que si tu passes dans le if c'est que ta valeur se trouvais dans ta chaine où tu auras mis tout tes numéros... si tu passes dans le else, c'est que ce n'est pas présent...

Posté : 22 avr. 2005, 09:58
par Invité
OK! Je viens d'essayer.
Donc concrètement ca donne en exemple:

$texte="241 108 162 228 62 63 64 65 66 67 68 69 77 78 106 107 120 155 161 203 206 207 208 223 225 242 243 247 ";
if (strpos($texte,228)>0) {
echo "ok";
}

et ca ne marche pas...rien dne s'affiche, la condition apparait comme fausse... :roll:
dc la je comprends plus! :shock:

Posté : 22 avr. 2005, 10:13
par toony
correction, j'ai remplacé les espaces par des - et ca marche (???).

Merci beaucoup!!!! :D

Posté : 22 avr. 2005, 10:17
par heddicmi
PS : Ta chaîne recherchée $detail['id_marque'] si j'ai bien suivi...

Donc ne fait pas une recherche directement de celle-ci... Car imagine que $detail['id_marque'] contient 65 et que dans $texte tu es 265, tu iras dans le if au lieu du else... Donc fait plutôt une recherche sur -$detail['id_marque']-, soit par exemple "-65-"

Posté : 22 avr. 2005, 10:37
par Invité
C'est exactement ce que j'ai fait! :D