[05:22:32]
*
Amand
quit (Quit: Connection closed for inactivity)
[05:23:02]
*
Artus
set mode +l 7
[06:06:37]
*
CrazyCat[AFK]
is now known as CrazyCat
[07:11:00]
*
Jarvis
quit (Ping timeout: 180 seconds)
[07:11:35]
*
CrazyCat
quit (Ping timeout: 180 seconds)
[07:12:04]
*
Artus
set mode +l 5
[10:36:40]
*
Amand
joined #informatique
[10:36:40]
*
[Guru]
set mode +h Amand
[10:37:02]
*
Artus
set mode +l 6
[11:01:35]
*
Jarvis
joined #informatique
[11:02:02]
*
Artus
set mode +l 7
[11:04:33]
*
CrazyCat
quit (Quit: Connection closed)
[11:05:08]
*
CrazyCat
joined #informatique
[11:05:08]
*
[Guru]
set mode +o CrazyCat
[11:06:05]
*
Artus
set mode +l 8
[12:02:09]
*
Jarvis
is now known as Jarvis2
[12:05:43]
*
Jarvis2
is now known as Jarvis
[12:16:33]
%
Amand
j'ai une base de donnée ou j'ai mis 4 champs en clef unique nick,username,ip,host
[12:17:14]
%
Amand
par contre quand je me connecte avec le même nick,username,ip,host mais quand je change le realname
[12:17:34]
%
Amand
il fait pas d'insertion ( j'utilise INSERT IGNORE )
[12:17:46]
%
Amand
je crois que j'ai fait une erreur sur les clef unique
[12:22:55]
@
CrazyCat
Ben si la clé unique ne prends pas realname, il n'insère pas si l'enregistrement avec nick,username,ip,host existe déjà
[12:23:54]
@
CrazyCat
Et c'est un peu moche ce que tu fais là... Tu as 2 requêtes à entretenir
[12:27:30]
%
Amand
ok donc je dois mettre la clef unique sur nick,username,ip,host,realname,webirc,sslco
[12:27:59]
%
Amand
ah oui c'est beaucoup mieux comme ça
[12:36:55]
%
Amand
j'ai une erreur qui ressort je dois à chaque fois vider ma table, quand je veux mettre une clef unique sur des champs qui étaient normaux
[12:37:14]
%
Amand
à cause des duplicata il me retourne une erreur
[12:37:34]
%
Amand
je dois d'abord supprimer les duplicatas et ensuite la rendre clef unique ou il y a une manipulation précise?
[12:41:29]
@
CrazyCat
Oui, tu es obligée de supprimer les doublons
[12:42:15]
@
CrazyCat
Maintenant, si c'est pour mettre une clé unique sur tout, autant tout enregistrer
[12:42:52]
@
CrazyCat
Et faire une requête avec un select distinct pour n'avoir qu'un enregistrement
[12:43:52]
%
Amand
faut que je retrouve la requête pour supprimer les doublons je cherche j'ai un trou de mémoire
[12:45:20]
@
CrazyCat
En fait, tu te compliques la vie et en plus tu te retire des possibilités de tracking
[12:46:21]
@
CrazyCat
Tu enregistres à chaque connexion d'un utilisateur ?
[12:47:10]
@
CrazyCat
Je ne sais pas quel est le but de ce système, mais au lieu de le restreindre, rend le plus complet
[12:47:31]
%
Amand
si il n'a pas subit de sanction et n'est pas en exception , oui j'enregistre
[12:48:00]
%
Amand
je me fais la main, j'aurais besoin de ces compétences
[12:48:06]
@
CrazyCat
C'est quoi le but de cette base ?
[12:48:13]
@
CrazyCat
(je re dans 10 minutes)
[12:48:31]
%
Amand
le but est seulement d'enregistrer les données de connexion d'un utilisateur dans une base de donnée
[12:56:07]
%
Amand
ah j'avoue que si j'enregistre toutes les connexions et je fais pas un insert into pour en avoir qu'un seul
[12:56:20]
%
Amand
je pourrais aussi mettre le nombre de connexion par exemple
[13:01:35]
@
CrazyCat
Clairement, je te conseille d'ajouter un champ datetime à ta base, et pourquoi pas aussi des champs du type "sanction" et "à surveiller" et de tout enregistrer
[13:06:15]
%
Amand
clairement !
[13:06:30]
%
Amand
oui en parlant de champ datetime je viens d'ajouter
[13:07:00]
@
CrazyCat
Pas timestamp, datetime
[13:07:23]
%
Amand
j'ai la date sous cette forme : 2022-06-23 15:03:13
[13:07:48]
@
CrazyCat
timestamp est relativement dangereux: si tu fais un update d'un champ quelconque dans la table, le timestamp changera
[13:08:07]
@
CrazyCat
Alors que le datetime ne chanque que si tu l'update lui
[13:11:13]
%
Amand
ok c'est bon à savoir
[13:11:31]
@
CrazyCat
Je me suis fait avoir une fois, j'ai plus jamais oublié :)
[13:12:59]
%
Amand
ok je vais retirer toutes les clef unique et ajouté les champs
[13:13:29]
%
Amand
par contre pour avoir le nombre de connexion , j'ai pas besoin d'ajouter un champ théoriquement
[13:13:42]
%
Amand
une requête devrait crée la variable, si je ne dis pas de bêtise
[13:14:00]
%
Amand
créer*
[13:14:11]
%
Amand
ok je vais y aller étape par étape
[13:14:39]
@
CrazyCat
Je ne vois d'ailleurs pas quel champ tu pourrais ajouter où, vu que tu enregistre chaque connection, tu aurais toujours 1 dedans
[13:59:38]
%
Amand
mais là du coup si je veux faire un distinct je peux pas faire un *
[13:59:51]
%
Amand
le datetime ne sera pas le même, donc il affichera les doublons
[14:05:08]
@
CrazyCat
Oui, d'où l'intérêt de ne pa sprendre l'habitude du select * :)
[14:06:02]
%
Amand
SELECT DISTINCT codepays,nick,username,ip,host,realname,webirc,sslco,suspect FROM logsusers ORDER BY time DESC
[14:06:49]
%
Amand
par contre pour afficher le nombre de connexion
[14:06:57]
%
Amand
oula faut que je me documente
[14:07:18]
%
Amand
je pense qu'il doit y avoir un count à mettre
[14:07:28]
%
Amand
avec un AS , faut que je regarde
[14:09:09]
%
Amand
ah mais oui du coup mon champ datetime va retourner : 1/1/1970
[14:09:13]
%
Amand
vu que je le selectionne pas
[14:09:25]
%
Amand
je crois que j'ai une idée
[14:10:22]
%
Amand
mais pour ça il va falloir que je crée une vue je pense que c'est obligatoire
[14:14:51]
%
Amand
qu'est ce que tu en penses?
[14:15:27]
%
Amand
nbc = nombre de connexion
[14:15:32]
%
Amand
lasttime = le timestamp
[14:15:54]
%
Amand
ensuite je fais appel la vue stats_connex au lieu de logsusers
[14:17:42]
%
Amand
SELECT DISTINCT codepays,nick,username,ip,host,realname,webirc,sslco,suspect FROM stats_connex ORDER BY lasttime DESC
[14:17:57]
%
Amand
pour afficher j'utiliserais stats_connex et lasttime
[14:18:04]
%
Amand
là je théorise
[14:19:25]
@
CrazyCat
Pourquoi tu mets des alias sur tous les champs ?
[14:20:01]
@
CrazyCat
Et pourquoi un group by aussi énorme ?
[14:20:48]
%
Amand
pour les récupérer dans ma requête non?
[14:20:50]
%
Amand
je sais pas
[14:21:09]
%
Amand
une théorie, en lisant la doc, peut être que je fait n'importe quoi
[14:22:42]
@
CrazyCat
Les alias ne servent que dans 2 cas: quand tu as 2 champs qui ont le même nom ou quand tu as une formule (comme max ou count)
[14:24:31]
%
Amand
en plus même faire un distinct sur l'id, c'est pas logique
[14:24:34]
%
Amand
l'id sera différent
[14:26:35]
%
Amand
compliqué
[14:26:51]
@
CrazyCat
Reprenons... Que veux tu compter ?
[14:27:11]
%
Amand
le nombre de connexion fait par une même connexion
[14:27:21]
%
Amand
faite*
[14:27:41]
@
CrazyCat
ok, donc le count(id) est la bonne option
[14:28:29]
@
CrazyCat
(j'imagine que "même connexion" est en fait "même nick" ou "même ip")
[14:29:02]
@
CrazyCat
Et tu veux aussi la date/heure de dernière connexion donc
[14:29:36]
%
Amand
même nick,username,ip,host,realname,webirc,sslco,suspect (logiquement)
[14:29:48]
%
Amand
heu non
[14:31:27]
%
Amand
nick,ip
[14:31:32]
@
CrazyCat
Je ne vois pas l'intérêt du realname ni celui du suspect
[14:31:33]
%
Amand
oui tu as raison
[14:31:39]
%
Amand
les autres peuvent changer
[14:31:54]
%
Amand
host sera le même vu que l'ip est la même
[14:31:57]
%
Amand
pas besoin
[14:32:16]
%
Amand
donc oui nick,username,ip
[14:32:49]
@
CrazyCat
Ok, donc: SELECT COUNT(DISTINCT id) AS nbc, MAX(time) AS lasttime, nick, username, ip FROM logsusers GROUP BY nick, username, ip
[14:33:21]
@
CrazyCat
Tu peux ajouter d'autres champs dans ton select
[14:33:43]
@
CrazyCat
Et tu peux même faire: SELECT COUNT(DISTINCT id) AS nbc, MAX(time) AS lasttime, * FROM logsusers GROUP BY nick, username, ip
[14:34:38]
@
CrazyCat
Par contre faire une vue là n'a à mon avis aucun intérêt
[14:36:22]
%
Amand
il a pas l'air d'aimer le *
[14:37:12]
@
CrazyCat
Que les champs ne sont pas dans le group by ?
[14:38:05]
%
Amand
SELECT COUNT(DISTINCT id) AS nbc, MAX(time) AS lasttime, * FROM logsusers GROUP BY nick, username, ip ORDER BY lasttime
[14:38:21]
%
Amand
Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '* FROM logsusers GROUP BY nick, username, ip ORDER BY lasttime'
[14:41:00]
%
Amand
déjà le order by se met avant le group by
[14:41:58]
@
CrazyCat
Et le non, le order by va après
[14:42:19]
@
CrazyCat
tu fais un order sur ce qui est groupé
[14:42:31]
@
CrazyCat
tu ne groupes pas une liste ordonnée
[14:42:58]
%
Amand
SELECT COUNT(DISTINCT id) AS nbc, MAX(time) AS lasttime FROM logsusers GROUP BY nick, username, ip ORDER BY lasttime DESC
[14:43:08]
%
Amand
je ne peux pas utiliser le lasttime dans la requête ?
[14:43:19]
%
Amand
du coup je peux faire
[14:43:33]
%
Amand
SELECT COUNT(DISTINCT id) AS nbc, MAX(time), time AS lasttime FROM logsusers GROUP BY nick, username, ip ORDER BY time DESC
[14:43:52]
%
Amand
SELECT COUNT(DISTINCT id) AS nbc, MAX(time) AS lasttime, time FROM logsusers GROUP BY nick, username, ip ORDER BY time DESC
[14:43:55]
%
Amand
plutôt
[14:44:12]
@
CrazyCat
P-e que MAX(time) peut fonctionner dans le order
[14:44:58]
%
Amand
SELECT COUNT(DISTINCT id) AS nbc, MAX(time) AS lasttime, time FROM logsusers GROUP BY nick, username, ip ORDER BY time DESC
[14:45:05]
%
Amand
ça a l'air ok je test
[14:45:29]
@
CrazyCat
hum... Tu risques d'avoir des surprises
[14:46:15]
%
Amand
il manque les champs à select
[14:48:34]
%
Amand
SELECT COUNT(DISTINCT id) AS nbc, MAX(time) AS lasttime, codepays, nick, username, ip, host, realname, webirc, sslco, suspect, time FROM logsusers GROUP BY nick, username, ip ORDER BY time DESC
[14:48:57]
%
Amand
c'est tout bon
[14:49:05]
%
Amand
merci CrazyCat ! encore une fois lol
[14:50:14]
%
Amand
les gens viennent me voir en pv
[14:50:24]
%
Amand
j'ai l'impressions qu'ils ont honte de parler sur #eggdrop
[14:51:07]
@
CrazyCat
J'ai arrété de lui répondre, il se tourne vers toi
[14:51:14]
@
CrazyCat
Envoie le chier :)
[15:01:16]
@
CrazyCat
Bon, c'est l'heure d'aller boire un coup pour moi
[15:01:56]
%
Amand
bon apéro, à tout à l'heure merci encore
[15:04:31]
*
CrazyCat
is now known as CrazyCat[AFK]
[19:54:10]
*
Amand
quit (Quit: Connection closed for inactivity)
[19:55:02]
*
Artus
set mode +l 7
[20:04:25]
*
[Guru]
set mode +h Amand
[20:04:25]
*
Amand
joined #informatique
[20:05:02]
*
Artus
set mode +l 8