limitation

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : limitation

par Cyrano » 22 avr. 2005, 19:13

Parce que ta requête, sauf erreur de mes sens abusés, doit comporter un GROUP BY sur le destinataire.

par Florent » 22 avr. 2005, 19:03

C'est ce que je pensais faire, mais je n'y suis pas arrivé.
mon principe :
un membre se connecte :
$sql2 = "SELECT idmess,date,sujet,expediteur FROM messages WHERE destinataire='$login'";
$reponse3 = mysql_query($sql2) or die("Erreur SQL ! <BR />".$sql2."<BR />".mysql_error());

Donc là, avec ces infos, plus bas, tous les messages dont ce membre est le destinataire vont être listés avec un while.

Si j'ai bien compris :
Il me faut compter tous les messages adressés à ce membre, et si ce nombre dépasse la limite, je dois supprimer tous les messages dont les idmessages sont les plus petits (plus anciens donc)

Ben en fait c'est avec ça que je me suis embrouillé et que je n'arrive pas à faire.

par Cyrano » 22 avr. 2005, 18:48

Salut,
je dirais qu'en l'occurence, travailler avec les dates ne servira qu'à compliquer l'application.

Le problème posé est simple : maximum, 10 messages par membre : bien considérons qu'il s'agit de messages reçus donc, on va se servir du champ destinataire pour identifier les "boites aux lettres". Là dessus, on peut faire un comptage de messages par membre en les classant par id_message: comme ce champ est en auto_increment, il est facile d'éliminer les plus anciens au-delà de dix.....
enfin schématiquement, je le vois comme ça, quelqu'un aura peut-être une idée meilleur ?

par Florent » 22 avr. 2005, 18:37

Ok merci, je vais essayer de trouver

par AntiZeus » 22 avr. 2005, 16:10

A mon avis, si tu renseigne un peu sur la fonction PHP getDate() tu devrais arriver à faire ce que tu veux !!!

par Florent » 20 avr. 2005, 18:41

Je ne comprend pas vraiment ce que tu veux dire ?

N'y aurait-il pas moyen qu'a chaque fois qu'un membre ouvre la base,(en consultant ses messages par exemple), de faire un test sur la date :
Tous les messages de plus de 10 jours seraient supprimés ?
En fait je ne sais pas gérer les dates, surtout dans un cas comme celui-ci.

par Natopsi » 20 avr. 2005, 18:30

Il faut stocker les messages en face des destinataires.

limitation

par Florent » 20 avr. 2005, 18:13

Bonjour
Je commence à me débrouiller, mais logique, je tombe sur un petit problème :)

J'ai réaliser une messagerie interne à mon mon site pour que les membres puisse s'envoyer des messages.
Tout fonctionne à merveille.
Cependant j'aimerais limiter le nombres de messages stockés dans la base à par exemple 10 par membres.
Il s'agit d'une base unique pour tous, ou le choix des messages à lire pour un membre est fait sur son pseudo.
je ne vois pas comment faire.
Voici la structure :

CREATE TABLE messages (
idmessage tinyint(4) NOT NULL auto_increment,
date date NOT NULL default '0000-00-00',
heure time NOT NULL default '00:00:00',
sujet varchar(40) NOT NULL default '',
texte varchar(255) NOT NULL default '',
expediteur tinyint(4) NOT NULL default '',
destinataire tinyint(4) NOT NULL default '',
PRIMARY KEY (idmess)
) TYPE=MyISAM;
Un membre identifié peu lire les messages si 'destinataire'=pseudo
Et j'aimerais limiter le nombre de message.....
Merci d'avance