Compter le nombre de mot dans une chaîne
Résolu
Sinistrus
Messages postés
1010
Date d'inscription
Statut
Membre
Dernière intervention
-
Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je rencontre un soucis au niveau de ce code:
Il affiche (3) puis (2) sachant que (3) est la valeur juste.
Je n'arrives pas à compter le nombre de mot dans ma chaîne, pouvez-vous m'aider svp ?
Je rencontre un soucis au niveau de ce code:
try {$stat = $pdo->query("SELECT Participant FROM tb_user_sondages");
while($data = $stat->fetch(PDO::FETCH_ASSOC)){
$PROFIL_SONDAGES_0A = $data["Participant"];
$PROFIL_SONDAGES_0B = explode($_SESSION_PSEUDO, $PROFIL_SONDAGES_0A);
$PROFIL_SONDAGES_00 = count($PROFIL_SONDAGES_0B);
echo "(".$PROFIL_SONDAGES_00.")<hr>";
}}catch(PDOException $e){echo "<div class='alert alert-danger'>".$e->getMessage()."</div>";}
Il affiche (3) puis (2) sachant que (3) est la valeur juste.
Je n'arrives pas à compter le nombre de mot dans ma chaîne, pouvez-vous m'aider svp ?
2 réponses
-
Bonjour,
Un exemple de ce que contiennent tes variables serait pas mal pour comprendre ....
- Que contient ta variable : $PROFIL_SONDAGES_0A ? (Quand ça donne 3 ... et quand ça donne 2)
- Que contient ta variable : $_SESSION_PSEUDO ? (Quand ça donne 3 ... et quand ça donne 2)
Sachant que tu es dans une boucle WHILE, il est normal, si ta requête retourne plusieurs lignes... que ça t'affiche différentes valeurs...
-
Bonjour Jordane45,
$PROFIL_SONDAGES_0A = "|salut||bonjour||hello||bonjour||bonsoir||bonjour||hello|"; $_SESSION_PSEUDO = "bonjour";
Il existe 3 "bonjour" dans ma chaine et le code m'affiche 3 <hr> 2-
Quand à ce code, en essayant de remplacer les pipes par des "," il me donne 2<br>1
try {$stat = $pdo->query("SELECT Participant FROM tb_user_sondages"); while($data = $stat->fetch(PDO::FETCH_ASSOC)){ $PROFIL_SONDAGES_00 = $data["Participant"]; $S = array("||","|"); $R = array('","',''); $PROFIL_SONDAGES_00 = str_replace($S, $R, $PROFIL_SONDAGES_00); echo substr_count($PROFIL_SONDAGES_00, $_SESSION_PSEUDO)."<br>"; }}catch(PDOException $e){echo "<div class='alert alert-danger'>".$e->getMessage()."</div>";} -
Tu ne réponds pas à ma question....
Essaye ce code et copie moi tel quel ce que ça t'affichetry { $stat = $pdo->query("SELECT Participant FROM tb_user_sondages"); while($data = $stat->fetch(PDO::FETCH_ASSOC)){ $PROFIL_SONDAGES_0A = $data["Participant"]; $PROFIL_SONDAGES_0B = explode($_SESSION_PSEUDO, $PROFIL_SONDAGES_0A); $PROFIL_SONDAGES_00 = count($PROFIL_SONDAGES_0B); echo "<br>PROFIL_SONDAGES_0A : >".$PROFIL_SONDAGES_0A."<"; echo "<br>_SESSION_PSEUDO : >".$_SESSION_PSEUDO."<"; echo "<br>(".$PROFIL_SONDAGES_00.")<hr>"; } }catch(PDOException $e){ echo "<div class='alert alert-danger'>".$e->getMessage()."</div>"; } -
-
Avec le code que tu nous as donné et l'exemple de ce que "contiendrait" tes variables... ça ne peut pas être 3 ... mais 4 qui te serait donné !
Pour preuve:$PROFIL_SONDAGES_0A = "|salut||bonjour||hello||bonjour||bonsoir||bonjour||hello|"; $_SESSION_PSEUDO = "bonjour"; $PROFIL_SONDAGES_0B = explode($_SESSION_PSEUDO, $PROFIL_SONDAGES_0A); $PROFIL_SONDAGES_00 = count($PROFIL_SONDAGES_0B); echo "<br>PROFIL_SONDAGES_0A : ".$PROFIL_SONDAGES_0A; echo "<br>_SESSION_PSEUDO : ".$_SESSION_PSEUDO; echo "<br>(".$PROFIL_SONDAGES_00.")<hr>";
Le "explode" découpe la chaine en se servant du délimiteur passé en paramètre.
Il te retourne donc :
Array
(
[0] => |salut||
[1] => ||hello||
[2] => ||bonsoir||
[3] => ||hello|
) -
-