charger une chaine dans un if

Toony
Invité n'ayant pas de compte PHPfrance

22 avr. 2005, 09:11

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.. :?

Mammouth du PHP | 568 Messages

22 avr. 2005, 09:33

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
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Invité
Invité n'ayant pas de compte PHPfrance

22 avr. 2005, 09:38

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...... :(

Mammouth du PHP | 568 Messages

22 avr. 2005, 09:45

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...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Invité
Invité n'ayant pas de compte PHPfrance

22 avr. 2005, 09:58

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:

toony
Invité n'ayant pas de compte PHPfrance

22 avr. 2005, 10:13

correction, j'ai remplacé les espaces par des - et ca marche (???).

Merci beaucoup!!!! :D

Mammouth du PHP | 568 Messages

22 avr. 2005, 10:17

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-"
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Invité
Invité n'ayant pas de compte PHPfrance

22 avr. 2005, 10:37

C'est exactement ce que j'ai fait! :D