[quote name=‹ AkyRhO › date=’ 17 Jan 2005, 07:41’]Ah Ah Ah niquel Unreal
Seulement voila, regarde le résultat ca fait un peu bourrin… Admettons que je veuilles regrouper ensemble les WinXP, Linux, Inconnu, et d’afficher le nombre à coté. En requete sql suffit d’ajouter « group by » mais dans le cas présent?
[right][post=« 323021 »]<{POST_SNAPBACK}>[/post][/right][/quote]
C’etait juste un exemple hein, t’etais pas oblige de le foutre tel quel dans ta page
[code]//Debut de ton script, tu initialises tes array.
$os_hits = array(0, 0, 0, 0, 0, 0, 0, 0, 0);
$user_agents = array(‹ Windows NT 5.1 ›, ‹ Windows NT 5.0 ›, ‹ Windows 2000 ›, ‹ Windows 98 ›, ‹ Windows NT 4.0 ›, ‹ Linux ›, ‹ Mac OS X ›, ‹ SunOS ›, ‹ FreeBSD ›, ‹ ›);
$os_id = array(1, 2, 2, 3, 4, 5, 6, 7, 8, 9);
$os = array(‹ Windows XP ›, ‹ Windows 2000 ›, ‹ Windows 98 ›, ‹ Windows NT 4.0 ›, ‹ Linux ›, ‹ Mac OS X ›, ‹ Solaris ›, ‹ FreeBSD ›, ‹ Inconnu ›);
[…]
//Debut de ta boucle (j’imagine)
$user_agent = que tu recuperes;
foreach ($user_agents as $i => $value)
if(@strpos($user_agent, $value))
break;
$os_hits[$os_id[$i]]++;
// Fin de ta boucle
// Apres, au moment d’afficher tes resultats…
echo ($os_hits[0] . ’ visiteurs ont utilisé ’ . $os[0]);
// Affiche « 1234 visiteurs ont utilisé Windows XP »[/code]
(code pas teste, mais qui devrait plus ou moins fonctionner )
Note : ce serait surement beaucoup plus constructif de creer une table « OS » ou tu enregistras directement les stats de chaque OS au moment de l’acces que d’enregistrer plein de user agents et de faire un gros tri de la mort qui tue au moment de l’affichage (rechercher des chaines est une operation tres lourde en temps CPU).
Edit : decidemment, je suis mal reveille