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 ?
A voir également:
- Compter le nombre de mot dans une chaîne
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Comment trouver le mot de passe wifi sur son téléphone - Guide
- Mot de passe bios perdu - Guide
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...
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...
Sinistrus
Messages postés
1010
Date d'inscription
Statut
Membre
Dernière intervention
17
Donc c'est ma boucle while qui me fait défaut ! Si je la supprime je n'aurais pas toutes les lignes de ma table et donc le calcul sera faussé... comment faire dans ce cas ?
Bonjour Jordane45,
Il existe 3 "bonjour" dans ma chaine et le code m'affiche 3 <hr> 2
$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'affiche
Essaye ce code et copie moi tel quel ce que ça t'affiche
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 "<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:
Le "explode" découpe la chaine en se servant du délimiteur passé en paramètre.
Il te retourne donc :
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|
)