En fait, j’ai fait un robot pour chat irc.
Ce robot fait des stats de conversation, c’est à dire combien de lignes, mots et lettres a dit un utilisateur etc …
Il y a également un classement (top5 des personnes qui parlent le plus)
Jusque la, tout va bien, mais sur irc, les utilisateurs changent souvent de nom, du genre de manu a manu_aw, mais mon bot prend ces 2 noms pour 2 “personnes” différente.
Ce que j’aimerais, c’est que quand je tape “!stats manu” il me donne les stats de manu + stats de manu_aw.
Pour cela j’ai créer une table mysql avec 3 champs : id, user et referrer
si le nick est le nick de “base” de l’utilisateur, le referrer vaut 0, dans les autre cas il contient l’id du nick auquel il correspond.
Mon problème est d’éffectué en un minimum de requète le classement.
Jusque la j’avais cela : $s = “SELECT * FROM stats
ORDER BY -line LIMIT 5”; (sans prendre en compte les différents nick)
pour complément, la table stats :
mysql> DESCRIBE stats;
±-------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±-------±------------±-----±----±--------±------+
| user | varchar(30) | NO | PRI | | |
| line | int(10) | YES | | NULL | |
| word | int(20) | YES | | NULL | |
| letter | int(100) | YES | | NULL | |
±-------±------------±-----±----±--------±------+
4 rows in set (0.00 sec)
et nick :
mysql> DESCRIBE nick;
±---------±------------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±---------±------------±-----±----±--------±---------------+
| id | bigint(2) | NO | PRI | NULL | auto_increment |
| user | varchar(30) | NO | | | |
| referrer | bigint(2) | YES | | NULL | |
±---------±------------±-----±----±--------±---------------+
3 rows in set (0.00 sec
Edité le 30/08/2007 à 20:43