IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

alerte nouveau message tchat [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 43
    Points : 24
    Points
    24
    Par défaut alerte nouveau message tchat
    bonjour,

    si je ne suis pas dans le bon forum je m'en excuse mais je trouve pas de forum uniquement dédié à php

    donc voila j'ai une appli qui doit m'afficher une infobulle pour me faire savoir que j'ai un nouveau message dans une discution non active

    je vous montre ça en image

    Nom : tchat.PNG
Affichages : 149
Taille : 1,6 Ko

    donc la j'ai deux bulles alors qu'elle devrais juste être affiché à coté du 1er pseudo de la liste:

    mon code php pour récupérer le nombre de message et afficher la bulle avec le nombre de message au besoin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    while($data2 = mysql_fetch_array($req2))
    {
    $sql3 = mysql_query("SELECT sexe FROM membres WHERE pseudo='".$data2['dest']."'") or die (mysql_error());
    list($sexe) = mysql_fetch_row($sql3);
     
    $sql3 = mysql_query("SELECT COUNT(*) FROM chat WHERE dest='".$_SESSION['pseudo']."' AND exp='".$data2['dest']."' AND nouv='oui'") or die (mysql_error());
    list($nbre_chat) = mysql_fetch_row($sql3);
     
    if ($nbre_chat!='0')
    {
     $verif = '<div class="new_chat"><p>'.$nbre_chat.'</p></div>';	
    }
     
     
     
    if ($sexe == 'Homme')
    {
     
    echo '<A style="margin-bottom: -15px; color: #007ba2;" class="chat_profils_homme" href="/fiche_cli/chat.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].''.$verif.'</a>';
     
     
    }
    else
    {
    echo '<A style="margin-bottom: -15px; color: #f40e63;" class="chat_profils_homme" href="/fiche_cli/chat.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].''.$verif.'</a>';
    }
    }
    le problème viens d'ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    if ($nbre_chat!='0')
    {
     $verif = '<div class="new_chat"><p>'.$nbre_chat.'</p></div>';	
    }
     
    if ($sexe == 'Homme')
    {
     
    echo '<A style="margin-bottom: -15px; color: #007ba2;" class="chat_profils_homme" href="/fiche_cli/chat.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].''.$verif.'</a>';
     
     
    }
    else
    {
    echo '<A style="margin-bottom: -15px; color: #f40e63;" class="chat_profils_homme" href="/fiche_cli/chat.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].''.$verif.'</a>';
    }
    car si je fait comme ça j'ai bien les bonnes infos

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if ($sexe == 'Homme')
    {
     
    echo '<A style="margin-bottom: -15px; color: #007ba2;" class="chat_profils_homme" href="/fiche_cli/chat.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].'<div class="new_chat"><p>'.$nbre_chat.'</p></div></a>';
     
     
    }
    else
    {
    echo '<A style="margin-bottom: -15px; color: #f40e63;" class="chat_profils_homme" href="/fiche_cli/chat.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].'<div class="new_chat"><p>'.$nbre_chat.'</p></div></a>';
    }
    mais là j'ai la bulle qui s'affiche avec le bon nombre de message mais moi je veux pas voir cette bulle si le nombre de nouveau message est égal à zero

  2. #2
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 43
    Points : 24
    Points
    24
    Par défaut
    je comprend pas ma avec ça j'ai l'affichage comme dans l'image

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ($nbre_chat != 0)
    {
     $verif = '<div class="new_chat"><p>'.$nbre_chat.'</p></div>';	
    }
    par contre comme ça j'ai bien le bon nombre de message en attente par rapport à l'utilisateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $verif = '<div class="new_chat"><p>'.$nbre_chat.'</p></div>';
    mais j'ai la bulle même si le nombre de message est de zero

    si ça fonctionne sans if ça doit bien fonctionner avec un if...

  3. #3
    Membre éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Points : 760
    Points
    760
    Par défaut
    Salut,

    Je n'ai pas tout compris, mais si tu veux que rien ne s'affiche si il n'y a pas de massage, essai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if ($nbre_chat!='0')
    {
    	$verif = '<div class="new_chat"><p>'.$nbre_chat.'</p></div>';	
    	if ($sexe == 'Homme')
    	{
    		echo '<A style="margin-bottom: -15px; color: #007ba2;" class="chat_profils_homme" href="/fiche_cli/chat.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].''.$verif.'</a>';
     
    	}
    	else
    	{
    		echo '<A style="margin-bottom: -15px; color: #f40e63;" class="chat_profils_homme" href="/fiche_cli/chat.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].''.$verif.'</a>';
    	}
    }

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    IL faut remettre la variable à vide si il n'y a pas de messages :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($nbre_chat != 0)
    {
     $verif = '<div class="new_chat"><p>'.$nbre_chat.'</p></div>';	
    } else {
      $verif = '';
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 43
    Points : 24
    Points
    24
    Par défaut
    ah bah oui ça marche comme ça

    pourtant si je met pas de else c'est qu'on ne fait rien si la valeur est a zero

    ça met pourtant jamais arrivé ce genre de probleme

    en tout cas j'ai chercher et j'avais pas pensé au else vide

    en tout cas ça fonctionne merci

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Le problème vient du fait que tout ce code est dans une boucle. Sans le else, tant qu'on ne rentre pas dans le if à nouveau, $verif garde la valeur qui lui a été affecté au tour de boucle précédent.

    Exemple, si on a les données suivantes en base :
    A : 0 post
    B : 1 post
    C : 0 post

    Quand tu boucles :
    Tour 1 : A, 0 post, on ne rentre pas dans le if : $verif = vide
    Tour 2 : B, 1 post, on rentre dans le if : $verif = 1
    Tour 3 : C, 0 post, on ne rentre pas dans le if : $verif n'est pas modifié, donc $verif = 1
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 43
    Points : 24
    Points
    24
    Par défaut
    ah oui j'avais pas calculé mon while

    en tout cas merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Afficher une notification au postage d'un nouveau message sur un tchat
    Par Eylun dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 05/07/2017, 00h46
  2. Alerte sonore Nouveau Message Tchat / js / jquery / ajax
    Par budfoxob dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/06/2014, 19h02
  3. Alerte de nouveau message pour mon forum
    Par spiral23 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/05/2010, 17h05
  4. [Forum] Avertissement "Nouveau message privé" : désactiver ?
    Par Caroline1 dans le forum Evolutions du club
    Réponses: 4
    Dernier message: 04/05/2006, 19h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo