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