Faire le lien entre les données d'un array

Faire le lien entre les données d'un array - PHP - Programmation

Marsh Posté le 01-10-2009 à 23:14:28    

Salut,
 
J'ai (encore) un problème du genre con mais pas tant que ça en fait. J'explique :
 
J'ai un petit bout de code qui me permet de compter le nombre d'occurrences de certains mots (variables) dans une chaîne, ces mots étant dans une table ma base de données. J'ai donc créé une boucle while pour compter les occurrences de chaque mot, et j'ai mis tout ça dans un array. Le soucis, c'est qu'il me faudrait sélectionner le mot qui ressort le plus souvent. Je peux calculer le nombre le plus grand, mais je ne vois pas comment relier ce nombre au mot auquel il correspond...
 
Voici le code, j'espère que ça sera un peu plus clair :
 

Code :
  1. $nb = array('0'); // Chiffre neutre pour établir l'array
  2. $requete55 = mysql_query('SELECT id, titre FROM test_resultat WHERE id_test = '. $_POST['id_quizz'] .' ORDER BY id');  // Requête dont on se fout royalement
  3.  
  4. while ($data55 = mysql_fetch_array($requete55) )
  5. {
  6. $nb[] = substr_count($somme, $data55['titre']);  // $somme est la chaîne de mots. Cette requête me permet de compter le nombre d'occurrences de chaque mot dans la table test_resultat
  7. }
  8. $max = max ($nb); // Le nombre d'occurrences du mot le plus employé. Mais je voudrais connaître le mot en question...
  9. echo 'max : '.$max;


 
 
Merci d'avance :)


---------------
Plaît-il ?
Reply

Marsh Posté le 01-10-2009 à 23:14:28   

Reply

Marsh Posté le 02-10-2009 à 06:53:51    


Code :
  1. $idMax = 0;
  2. $max= 0;
  3. while ($data = mysql_fetch_array($result) )
  4. {
  5.    $nb = substr_count($somme, $data['titre']);  
  6.    if($nb > $max){
  7.          $nb=$max;
  8.          $idMax = $data['id'];
  9.  
  10.     }
  11. }


Message édité par flo850 le 02-10-2009 à 06:54:01

---------------

Reply

Marsh Posté le 31-01-2010 à 19:27:57    

Salut,
 
Désolé pour la réponse tardive, je suis une vraie larve.  :D  
 
J'avais complètement oublié ce topic, et on m'a orienté sur un autre forum vers une méthode quasi-identique à la tienne, qui était en fait la plus simple et la plus logique :
 

Code :
  1. $requete55 = mysql_query('SELECT personnage FROM test_resultat WHERE id_test = '. $_POST['id_quizz'] .' ORDER BY personnage');
  2. $resultat = ""; // chaine qui contiendra le mot
  3. $count = 0; // nombre d'occurences actualisé à chaque passage de boucle
  4.  
  5. while ($data55 = mysql_fetch_array($requete55) )
  6. {
  7.             if(substr_count($somme, $data55['personnage']) > $count)
  8.   {
  9.                 $resultat = $data55['personnage'];
  10.                 $count = substr_count($somme, $data55['personnage']);
  11.             }
  12. }


 
 
Quoiqu'il en soit, merci pour ton aide  :)


---------------
Plaît-il ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed