Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

limiter le nombre d'enregsitrements dans une table mysql

Aller à la page 1, 2  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
code
WRInaute passionné
WRInaute passionné

Inscrit le: 29 Juil 2005
Messages: 645
Localisation: Sur le forum quand je suis connecté sinon ailleurs

URL permanente de ce messagePosté le : Mer Sep 28, 2005 16:31    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

Bonjour,

voila, je suis confonté à un problème Crying or Very sad . J'ai un moteur de recherche sur mon site qui enregistre les mots clés tapés par les visiteurs pour afficher les 10 derniers mots clés tapés.. Ces mots s'inscrivent dans une table.

Ce qui m'énerve c'est que je dois vider régulièrement cette table car elle a tendance (forcement) à grossir trop rapidement...

Je que j'aimerais pouvoir faire, c'est par exemple limiter les enregistrement à 100. Lorsque les 100 enregistrements seraient effectués, l'enregistrement numéro 101 prendrait la PREMIERE place et non la 101eme comme c'est le cas actullement. Bref... Cela permettrait de ne jamais dépassé les 100 enregsitrements dans ma tag
ble et donc d'en limiter la taille. Laughing
 
code Visiter le site web du posteur
Fab le Fou
WRInaute accro
WRInaute accro

Inscrit le: 02 Déc 2004
Messages: 1496
Localisation: Lorient

URL permanente de ce messagePosté le : Mer Sep 28, 2005 16:44    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

Avant d'enregistrer le mot-clés qui vient d'être recherché, tu comptes le nombre d'enregistrements déjà présents dans ta table.

Si ce nombre est > 100, tu lances une requête UPDATE au lieu d'un INSERT

Mais pourquoi tu en veux 100 si tu n'en affiches que 10 ?

Pour 10 ça ne vaut d'ailleurs pas le coup d'utiliser une base de données... un fichier fera très bien l'affaire.

Fab
 
Fab le Fou Visiter le site web du posteur
code
WRInaute passionné
WRInaute passionné

Inscrit le: 29 Juil 2005
Messages: 645
Localisation: Sur le forum quand je suis connecté sinon ailleurs

URL permanente de ce messagePosté le : Mer Sep 28, 2005 16:47    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

oui j'ai dit 100 pour exemple mais 10 ça me suffit Smile ...

ok ta solution me semble logique... je vais tester ca et voir si ça marche...
 
code Visiter le site web du posteur
blman
WRInaute accro
WRInaute accro

Inscrit le: 05 Sep 2003
Messages: 2775
Localisation: Nantes / Laval (France)

URL permanente de ce messagePosté le : Mer Sep 28, 2005 17:02    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

Voila, j'ai un système similaire au tiens. Seulement, je met une date d'enregistrement et vu que je n'affiche que les 30 mots clés les plus tapés dans le mois, je vide tous les enregistrements qui on une date supérieur à 1 mois...
 
blman Visiter le site web du posteur
code
WRInaute passionné
WRInaute passionné

Inscrit le: 29 Juil 2005
Messages: 645
Localisation: Sur le forum quand je suis connecté sinon ailleurs

URL permanente de ce messagePosté le : Jeu Sep 29, 2005 6:58    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

blman, ta solution me semble appropriée pour ce que je veux faire car un classement des mots les plus recherchés dans le mois est intéressant. J'ajoute donc un champs "date" dans ma table de mots clés. lorsque le mot clé est enregistré, j'enregistre en même temps la date avec un CURRENT_DATE ; par contre peux tu me dire quelle requete tu effectues pour comparer les dates. Car je peux comparer la date actuelle avec la date d'enregistrement et dire que si cette derniere est supérieure à 30 jours, d'effacer tous les mots qui ont une date supérieure. Par contre, ce que je souhaiterais plutot, c'est une remise à 0 le 1er de chaque mois, et non pas avec un décalage de 30 jours, ce qui ne rime à rien en fait. Comment faire ?
 
code Visiter le site web du posteur
siddhy
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 20 Sep 2004
Messages: 152
Localisation: Perpignan

URL permanente de ce messagePosté le : Jeu Sep 29, 2005 7:28    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

Salut,

Pour vider la table le 1er de chaque mois, moi j'aurais fait une fonction qui s'execute lors de la 1ere connexion de la journée et qui verifie si le jour de la date d'aujourd'hui est egal à 1 . si oui je vide la table.

Si tu peux faire des taches cron, il suffit de lancer ta fonction 1 fois par jour..

Voila. Smile
 
siddhy Visiter le site web du posteur
code
WRInaute passionné
WRInaute passionné

Inscrit le: 29 Juil 2005
Messages: 645
Localisation: Sur le forum quand je suis connecté sinon ailleurs

URL permanente de ce messagePosté le : Jeu Sep 29, 2005 8:49    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

siddhy a écrit:
Salut,

Pour vider la table le 1er de chaque mois, moi j'aurais fait une fonction qui s'execute lors de la 1ere connexion de la journée et qui verifie si le jour de la date d'aujourd'hui est egal à 1 . si oui je vide la table.

Voila. Smile


Donc du coup c'est encore plus simple parce qu'avec ta solution je n'ai même pas besoin de creer un champs date dans ma table de mots cles. Ta solution est donc pour l'instant la plus simple
 
code Visiter le site web du posteur
siddhy
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 20 Sep 2004
Messages: 152
Localisation: Perpignan

URL permanente de ce messagePosté le : Jeu Sep 29, 2005 9:00    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

Si tu n'utilise pas de tache cron, il faut aussi faire attention à ce que la fonction ne s'execute qu'1 seule fois par jour. donc il faut quand meme un champ date quelque part..
par ex :
si ma_date != date d'aujourd'hui => on verif si le jour = 1, et on met la date d'aujourd'hui dans le champ ma_date
sinon c'est que la verif a déja été faire aujourd'hui..

Donc ce n'est pas plus simple que la solution de blman. mais ce n'est pas non plus exactement la meme fonctionnalité. Smile
 
siddhy Visiter le site web du posteur
siddhy
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 20 Sep 2004
Messages: 152
Localisation: Perpignan

URL permanente de ce messagePosté le : Jeu Sep 29, 2005 9:45    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

Un autre point qu'il faut prendre en compte :
Imaginons que pour une raison queconque, le 1er octobre 2005 (par ex) il n'y a aucune connexion.. dans ce cas la table ne serait pas vidée jusqu'au mois prochain ! Crying or Very sad

Il faudrait donc (comme la solution de blman) tester l'ancienneté des enregistrements en plus du reste ...
 
siddhy Visiter le site web du posteur
code
WRInaute passionné
WRInaute passionné

Inscrit le: 29 Juil 2005
Messages: 645
Localisation: Sur le forum quand je suis connecté sinon ailleurs

URL permanente de ce messagePosté le : Jeu Sep 29, 2005 10:20    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

franchement si tel était le cas ce serait parcequ'il y a un probleme avec le serveur... Au quel cas je pourrais bien vider la table manuellement le 2 octobre...
 
code Visiter le site web du posteur
siddhy
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 20 Sep 2004
Messages: 152
Localisation: Perpignan

URL permanente de ce messagePosté le : Jeu Sep 29, 2005 10:24    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

C'est vrai.
Mais mieux vaut essayer de penser au pire plutôt que d'être pris au dépourvu plus tard.

Moi je pense que j'aurais fait le test sur l'ancienneté. histoire de ne plus du tout me soucier de ce point...

Voila Smile
 
siddhy Visiter le site web du posteur
code
WRInaute passionné
WRInaute passionné

Inscrit le: 29 Juil 2005
Messages: 645
Localisation: Sur le forum quand je suis connecté sinon ailleurs

URL permanente de ce messagePosté le : Jeu Sep 29, 2005 10:55    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

bon la je suis embrouillé. De toute façon je me suis rendu compte que dans un cas comme dans l'autre il faut bien que j'ai un champs date. OK

maintenant si je récapitule : un mot clé s'enregistre aujourd'hui avec la date du 29/09/2005 - Quelle fonction dois-je executer pour effacer le contenu de toute la table en début de mois suivant soit le 01/10/2005 ? car actuellement j'ai un probleme de comparaison pour le 31 décembre et le 1er janvier Wink
 
code Visiter le site web du posteur
blman
WRInaute accro
WRInaute accro

Inscrit le: 05 Sep 2003
Messages: 2775
Localisation: Nantes / Laval (France)

URL permanente de ce messagePosté le : Jeu Sep 29, 2005 10:57    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

Code, je comprend pas pourquoi tu veux effacer à partir du 1er car le 1er de chaque mois, ta liste sera vide. Alors que si tu efface toutes les dates supérieures à 30 jours, tes mots clés tournerons sans interruption. Tu affichera alors la liste des mots clés les plus tapés dans les 30 jours courants. (du 1er août 2005 au 1er septembre 2005 par exemple puis du 2 Août 2005 eu 2 septembre 2005, et ainsi de suite)

Un lien qui te sera util : http://dev.mysql.com/doc/mysql/fr/date-and-time-functions.html et http://fr2.php.net/date
 
blman Visiter le site web du posteur
siddhy
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 20 Sep 2004
Messages: 152
Localisation: Perpignan

URL permanente de ce messagePosté le : Jeu Sep 29, 2005 11:04    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

D'accord avec blman Smile

+1 pour les liens..
 
siddhy Visiter le site web du posteur
blman
WRInaute accro
WRInaute accro

Inscrit le: 05 Sep 2003
Messages: 2775
Localisation: Nantes / Laval (France)

URL permanente de ce messagePosté le : Jeu Sep 29, 2005 11:05    Sujet du message: limiter le nombre d'enregsitrements dans une table mysql

Allé, voila le code que j'utilise (peut surement être amélioré en 1 seule requête SQL mais moi je peux pas faire autrement vu que j'ai d'autres traitement, en même temps, il faut que je m'y replonge dans ce code car il date un peu)

$mois_dernier = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$mois_dernier=getdate($mois_dernier);

if(!isset($jdeb)) $jdeb=$mois_dernier["mday"];
if(!isset($mdeb)) $mdeb=$mois_dernier["mon"];
if(!isset($ydeb)) $ydeb=$mois_dernier["year"];

$datedeb=$ydeb."-".$mdeb."-".$jdeb;

mysql_query("DELETE FROM search_save WHERE date < '".$datedeb."';");
 
blman Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 2 - Aller à la page 1, 2  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort