La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  Message supprimé
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: Message supprimé  (Lu 1101 fois)
Message supprimé
« sur: le 27-04-2003 a 22:27:08 »
Sticky Mouse
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 35



Roh, ça farte ?
59188587 59188587
Voir le Profil    WWW    E-Mail
Répondre avec citation

Message supprimé

« Dernière Édition: le 31-03-2016 a 10:15:30 par Sticky Mouse » Rapporter au modérateur  

Guillaume Godart
Sticky Mouse L'info hi-tech !
Zone CD CD Trade Center
webmaster@zonecd.com

Re:GROUP BY ?
« Répondre #1 sur: le 01-05-2003 a 18:44:44 »
goa103
Membre récent
*

Hors-Ligne

Messages: 8



Hello Boy!

Voir le Profil
Répondre avec citation

Salut,

Pour quelle utilisation exactement ? A ma connaissance tu ne peux pas utiliser GROUP BY et "LAST" ni LIMIT.

JM

Rapporter au modérateur  
Re:GROUP BY ?
« Répondre #2 sur: le 01-05-2003 a 21:15:19 »
goa103
Membre récent
*

Hors-Ligne

Messages: 8



Hello Boy!

Voir le Profil
Répondre avec citation

Bonsoir,

Je vois mieux le problème maintenant. J'ai rencontré le problème et 2 solutions se sont présentées:
- récupérer les IPs par un GROUP BY puis pour chaque IP, récupérer la date la plus récente par un WHERE de l'IP et un ORDER BY DESC (note: les dates MySQL sont au format YYYY-MM-DD pas YYYY-DD-MM comme dans ton exemple !)
- utiliser 2 tables. Une qui stocke toutes les visites (celle que tu utilises) et une autre qui s'occupe de stocker la date de la dernière visite pour une IP donnée. A chaque visite il faut donc insérer 2 fois l'IPs, une fois dans celle des visites et une autre fois dans celle des dernières visites. Si la fonction "retrouver toutes les dernières visites" n'est accessible qu'aux admins de ton site, tu peux même envisager de générer cette table (qui devient alors obsolète-temporaire) quand un admin en a besoin. Ce qui permet de ne faire qu'une insertion pour chaque visiteur. Ce qui est à mon avis la meilleure option, beaucoup de visiteurs mais peu d'admin.

Peut-être qu'un expert en MySQL pourrait trouver LA requête mais je ne pense pas qu'une requête compliqué est une bonne requête. Il y a toujours une manière plus logique d'aborder les choses. J'ai pensé que la solution admin/visiteur était la plus optimum... Alors c'est celle que j'ai choisi.

Un petit conseil. Pour le DATETIME, tu peux te servir de TIMESTAMP, une valeur "vide" signifie "date courante", ce qui t'évite d'avoir à insérer une date toi-même. Très pratique. Mais penses qu'il y a un laps de temps entre les insertions, si tu en fais 2, les temps serton différents. Si tu génères la table, aucun problème. Si tu utilises une seule variable PHP pour stocker le temps et un DATETIME, pas de problème non plus.

JM

Rapporter au modérateur  
Re:GROUP BY ?
« Répondre #3 sur: le 01-05-2003 a 22:02:01 »
goa103
Membre récent
*

Hors-Ligne

Messages: 8



Hello Boy!

Voir le Profil
Répondre avec citation

Rebonsoir,

Je pense qu'on s'est mal compris. Ta table peut avoir 20 champs si tu veux (navigateurs, os,...) mais la table "dernières visites" possède uniquement 2 champs: IP + Dernière date de visite. L'IP est en fait une clé étrangère vers la table Visites.

Donc même si ta table visites possèdent 150.000 entrées pour 5000 visites uniques. La table "dernières visites" n'aura QUE 5000 entrées. 1 entrée dans cette dernière, n dans celle des visites.

Ainsi soit-il
JM

Rapporter au modérateur  
Re:GROUP BY ?
« Répondre #4 sur: le 02-05-2003 a 14:38:33 »
goa103
Membre récent
*

Hors-Ligne

Messages: 8



Hello Boy!

Voir le Profil
Répondre avec citation

Bonjour,

Je t'ai répondu en fonction des informations que tu m'as fournies. Si tu souhaites une solution adaptée à ton problème il faut être plus précis.

JM

Rapporter au modérateur  
Re:GROUP BY ?
« Répondre #5 sur: le 03-05-2003 a 19:57:21 »
goa103
Membre récent
*

Hors-Ligne

Messages: 8



Hello Boy!

Voir le Profil
Répondre avec citation

J'ai finalement trouvé un élément de réponses sur un newsgroup (sgbd):

SELECT Ip,MAX(DateTimeInsertion) FROM Visites GROUP BY Ip

On sélectionne les dernières (MAX) visites en les groupant par Ip. Attention si tu souhaites récupérer d'autres données, tu dois créer une table temporaire et faire une jointure. Sauf si tu utilises une fonction (comme MAX) sur les champs à récupérer:

CREATE TEMPORARY TABLE tutu SELECT ip, min(date) as date FROM toto GROUP BY ip
SELECT toto.* from toto INNER JOIN tutu using(ip,date)
(merci à P'tit Marcel)

Comme MAX n'est pas directement reliée aux dates, je n'ai jamais pensé à l'utiliser pour ce problème. Bien pratique !

Désormais je crois que tu as tous les éléments pour résoudre ton problème !

Bonne chance,
JM

Rapporter au modérateur  
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg