compteur de message envoyer sur le compte du membre

Ce topic a été résolu
Codeur61

Codeur61 Le 15 janvier 2017 à 00:18 (Édité le 25 janvier 2019 à 17:53)

Hello tout le monde, 
Ma question peut paraître bête et très facile mais je la pose quand même car bien sûre je ne connais pas la réponse 😄 ! 
En faite je veux que le nombre de messages envoyer soit mis sur le compte de chaque membre et le nombre de message reçus tout pareillement je vous mets un exemple : http://prnt.sc/dvpzqd
merci
Balatharas

Balatharas Le 15 janvier 2017 à 12:21

Salut,
Tu doit faire deux requêtes donc:
La première pour les messages envoyés.
Il faut que dans ta table où se trouve les messages que tu veux compter, il y ai un champ id_expediteur
Donc c'est simple: tu sélectionnes tout les messages qui ont pour id_expediteur, l'id de l'utilisateur du profil.
Ensuite tu executes la requêtes et tu fais un rowCount() de la requête exécutée. Puis tu affiches tout simplement.

La deuxième pour les messages reçus.
Il faut que dans ta table où se trouve les messages que tu veux compter, il y ai un champ id_destinataire
Donc c'est simple: tu sélectionnes tout les messages qui ont pour id_destinataire, l'id de l'utilisateur du profil.
Ensuite tu executes la requêtes et tu fais un rowCount() de la requête exécutée. Puis tu affiches tout simplement.

Je ne t'ai pas mis de code pour que tu avances seul mais avec quand même la marche à suivre, mais si tu as besoin d'aide je peux t'en apporter d'avantage 😉
Codeur61

Codeur61 Le 15 janvier 2017 à 12:34

Salut, tout d'abord merci beaucoup pour le temps que tu as passé à répondre à mon topic ! 
Mais je crois que je me suis mal exprimé même très mal. En faite j'ai déjà mon espace ou on reçois et envoi les messages, j'ai aussi mes deux bdd je voudrais juste créé un systéme qui pourrait se connecter a ma bdd pour afficher le nombre de message envoyés et message reçu avec un ' echo ' (= je crois qu'on peut faire comme sa mais je ne sais pas trop comment m'y prendre.
Merci d'avance 😉 ! 
Codeur61

Codeur61 Le 15 janvier 2017 à 12:37 (Édité le 15 janvier 2017 à 12:38)


Beignet Salut, tout d'abord merci beaucoup pour le temps que tu as passé à répondre à mon topic !  
Mais je crois que je me suis mal exprimé même très mal. En faite j'ai déjà mon espace ou on reçois et envoi les messages, j'ai aussi mes deux bdd je voudrais juste créé un systéme qui pourrait se connecter a ma bdd pour afficher le nombre de message envoyés et message reçu avec un ' echo ' (= je crois qu'on peut faire comme sa mais je ne sais pas trop comment m'y prendre. 
Merci d'avance  !  ;)
Balatharas

Balatharas Le 15 janvier 2017 à 12:46 (Édité le 15 janvier 2017 à 12:47)

C'est exactement ce que j'ai fait........
Je t'ai juste mis la méthode pour compter les messages reçus et envoyés et les afficher...
Codeur61

Codeur61 Le 15 janvier 2017 à 13:12

Oups désolé et bah dans ma table j'ai déjà créé les champs id_expediteur et id_destinataire... je suis en plaine apprentissage et j'ai complêtement oublié ce que voulait dire rowCount()....
Merci 😉
Balatharas

Balatharas Le 15 janvier 2017 à 13:23

Donc tu as réussi as faire ce que tu voulais ?
Codeur61

Codeur61 Le 15 janvier 2017 à 13:46

Non 😄 en faite j'ai mon espace avec mes message reçu et l'espace avec l'envoie de message MAIS (parce qu'il y a un mais) je veux que le membre et d'afficher le nombre de message envoyé et reçu Marqué sur son profil juste pour simple info pour le membre.
Balatharas

Balatharas Le 15 janvier 2017 à 13:53 (Édité le 15 janvier 2017 à 13:54)

Mais je t'ai donné toute la marche à suivre ici !:
Salut, 
Tu doit faire deux requêtes donc: 
La première pour les messages envoyés. 
Il faut que dans ta table où se trouve les messages que tu veux compter, il y ai un champ id_expediteur 
Donc c'est simple: tu sélectionnes tout les messages qui ont pour id_expediteur, l'id de l'utilisateur du profil. 
Ensuite tu executes la requêtes et tu fais un rowCount() de la requête exécutée. Puis tu affiches tout simplement. 

La deuxième pour les messages reçus. 
Il faut que dans ta table où se trouve les messages que tu veux compter, il y ai un champ id_destinataire 
Donc c'est simple: tu sélectionnes tout les messages qui ont pour id_destinataire, l'id de l'utilisateur du profil. 
Ensuite tu executes la requêtes et tu fais un rowCount() de la requête exécutée. Puis tu affiches tout simplement. 

Je ne t'ai pas mis de code pour que tu avances seul mais avec quand même la marche à suivre, mais si tu as besoin d'aide je peux t'en apporter d'avantage 
C'est aussi la 2ème fois que je te le répète...
Soit tu n'arrives pas à suivre ma méthode et là je peux t'aider, soit tu ignores encore le message et la je peux rien faire pour toi 😉


Bref envoie moi un screen de la table qui contient les messages
Codeur61

Codeur61 Le 15 janvier 2017 à 14:00

En aucun cas je n'ignore se que tu me dis ... je prend tout en compte mais c'est surement que je pige pas certains trucs . Je t'envoie le lien du screen car sur le forum sa bug 😄 : 
http://prnt.sc/dvvxsc
Balatharas

Balatharas Le 15 janvier 2017 à 14:59

Bon
Je vais te donner le code mais en t'expliquant, alors lis bien les explications pour ne plus avoir de problèmes.
Dans le code ta page profil.php:
$reqMsgSend = $bdd->prepare('SELECT * FROM messages WHERE id_expediteur = ?');
$reqMsgSend->execute([$userprofil['id']]);
$totalMsgSend = $reqMsgSend->rowCount();
$reqMsgRecus = $bdd->prepare('SELECT * FROM messages WHERE id_destinataire = ?');
$reqMsgRecus->execute([$userprofil['id']]);
$totalMsgRecus = $reqMsgRecus->rowCount();
Ensuite plus bas, dans l'affichage:
<p>Nombre de messages envoyés: <?= $totalMsgSend ?></p>
<p>Nombre de messages reçus: <?= $totalMsgRecus ?></p>
On va dire que l'id de l'utilisateur du profil que l'on regarde est égal à 5. DOnc $userprofil['id'] contient 5.

Donc la première requête va chercher dans la table messages, toutes les lignes qui ont 5 dans la colonne id_expediteur. Ensuite avec rowCount() on obtient le chiffre que tu veux afficher.

Donc la seconde requête va chercher dans la table messages, toutes les lignes qui ont 5 dans la colonne id_destinataire. Ensuite avec rowCount() on obtient le chiffre que tu veux afficher.
Codeur61

Codeur61 Le 15 janvier 2017 à 15:40

A d'accord merci beaucoup à toi beignet d'avoir pris le temps de m'expliqué tout sa maintenant je sais se que veut dire rowCount et à peut près quand le mettre. Faudra que je revois encore les ->execute et les = $bdd -> prepare mais sinon j'ai bien compris . Encore merci beaucoup d'avoir passé ton temps à m'expliqué 😉 !
coucougael94

coucougael94 Le 15 janvier 2017 à 15:42 (Édité le 15 janvier 2017 à 15:45)

Moi, je préfère utiliser COUNT() parce que le compteur s’exécute en même temps que la requête sql (et c'est donc plus rapide) :
$r = $bdd->prepare("SELECT COUNT(*)AS nbr FROM x WHERE id_x=?"); //req
$r->execute(array($id));
$d = $r->fetch();
if($d['nbr']>0)
{
   echo 'Vous avez '.$d['nbr'].'msg';//Cet ligne est faite pour les flemmards
}
else
{
   echo 'Vous n\'avez pas de msg';
}
J'aimerai bien que les gens de ce forum ce relise un peut ...
-se que tu me dis
-je veux que le membre et d'afficher le nombre
-le nombre de messages envoyer
-Le double post
-Mais je crois que je me suis mal exprimé même très mal
-> C'est pourtant simple d'essayer de bien s'exprimer
-Non  en faite j'ai mon espace avec mes message reçu et l'espace avec l'envoie
de message MAIS (parce qu'il y a un mais) je veux que le membre et
d'afficher le nombre de message envoyé et reçu Marqué sur son profil
juste pour simple info pour le membre.
-> Cet phrase est trop longue, utilise des points ( . )
-Marqué sur son profil juste pour simple info pour le membre
-> Pour donner des informations au membre, je souhaite lui afficher un compteur (ou plutôt lui donner le nombre) de message qu'il a posté.
Ces messages ne donnent pas envie de se faire lire.
j'ai aussi mes deux bdd
Deux bdd pour un projet c'est bof ...

GRILLED §§§
Balatharas

Balatharas Le 15 janvier 2017 à 15:56 (Édité le 16 janvier 2017 à 18:49)

-> Cet phrase est trop longue, utilise des points ( . )
Ah ouais.. Évite de demander aux autres de se relire (même si tu n'a pas tort) si toi-même tu fais de telles fautes 😉
Par contre t'es un peu maniaque sur les bords comme pour "se que tu me dis", "message envoyer" et double post..


De plus, lui montrer des alias alors qu'il a encore du mal a compter le nombre de ligne selon un critère, c'est un peu idiot
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte