Manque une case ! checked -php mysql strpos
Résolu/Fermé
A voir également:
- Manque une case ! checked -php mysql strpos
- Aller à la ligne dans une case excel - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Manque cam module - Forum TNT / Satellite / Réception
- Raccourci clavier case à cocher ✓ - Forum Excel
3 réponses
Utilisateur anonyme
Modifié par le père. le 23/06/2014 à 17:24
Modifié par le père. le 23/06/2014 à 17:24
Bonjour
Tu as une case de vide ? ^^
C'est parce que strpos te rend 0 quand la chaîne recherchée est dès le début, et que pour PHP, 0 c'est false.
Il faut donc tester avec !== :
qui teste que le résultat et son type.
Ce (petit) problème est très clairement mentionné dans la doc de strpos :
https://www.php.net/manual/fr/function.strpos.php
Tu as une case de vide ? ^^
C'est parce que strpos te rend 0 quand la chaîne recherchée est dès le début, et que pour PHP, 0 c'est false.
Il faut donc tester avec !== :
if(strpos($data['options'],'oiseau')!==false)
qui teste que le résultat et son type.
Ce (petit) problème est très clairement mentionné dans la doc de strpos :
https://www.php.net/manual/fr/function.strpos.php
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
Modifié par Pitet le 23/06/2014 à 17:38
Modifié par Pitet le 23/06/2014 à 17:38
Salut,
La fonction strpos retourne la position numérique de la première occurrence dans la chaine.
Si $data['options'] vaut 'chenille,papillon,fleur,oiseau', alors l'instruction
retourne la valeur 0 (la position dans la chaîne commence à 0, et non pas à 1).
La valeur 0 convertie en booléen correspond à FALSE.
Donc la condition
est fausse si $data['options'] vaut 'chenille,papillon,fleur,oiseau'. CQFD
Il faut donc vérifier que la fonction strpos te retourne bien une valeur différente de FALSE (indiquant que la chaine recherchée n'est pas trouvé) et pas une valeur correspondant à FALSE une fois convertie (tel que l'entier 0), soit :
Bonne journée
La fonction strpos retourne la position numérique de la première occurrence dans la chaine.
Si $data['options'] vaut 'chenille,papillon,fleur,oiseau', alors l'instruction
strpos($data['options'],'chenille')
retourne la valeur 0 (la position dans la chaîne commence à 0, et non pas à 1).
La valeur 0 convertie en booléen correspond à FALSE.
Donc la condition
if (strpos($data['options'],'chenille'))
est fausse si $data['options'] vaut 'chenille,papillon,fleur,oiseau'. CQFD
Il faut donc vérifier que la fonction strpos te retourne bien une valeur différente de FALSE (indiquant que la chaine recherchée n'est pas trouvé) et pas une valeur correspondant à FALSE une fois convertie (tel que l'entier 0), soit :
if(strpos($data['options'],'chenille') !== FALSE)
Bonne journée
Merci merci !
Ok, je croyais pouvoir prendre un raccourci, mais c'est raté !!
Au fait, tant que t'es là :D, saurais-tu répondre à ma question d'hier (sur la page en cours / Sunseeker - Dernière réponse le 22 juin 2014 à 19:13) intitulée : "PHP - else non pris en compte" ?
Ca me dépasse et vu que dans l'heure il me manquait une case... :))
Merci si tu as une idée ainsi que pour la case retrouvée!
Ok, je croyais pouvoir prendre un raccourci, mais c'est raté !!
Au fait, tant que t'es là :D, saurais-tu répondre à ma question d'hier (sur la page en cours / Sunseeker - Dernière réponse le 22 juin 2014 à 19:13) intitulée : "PHP - else non pris en compte" ?
Ca me dépasse et vu que dans l'heure il me manquait une case... :))
Merci si tu as une idée ainsi que pour la case retrouvée!