bonjour

j'ai créé un petit script ajax qui m'affiche une bulle avec le nombre de message tchat cette bulle doit s'afficher à coté du profil qui m'as envoyé un message mais la bulle s'afiche à coté de tous les pseudos de la liste

je vous laisse mon ajax:

var verif_chat;
clearInterval(verif_chat);
var div_mess;

function fonction_verif_chat(){

//$('#list_profil').empty();

        $.ajax({
        url : "/chat/liste_profil.php", // on passe l'id le plus récent au fichier de chargement
        method : 'GET',
        success : function(html){
        $('#list_profil').empty().append(html);
        }
        });

}

verif_chat = setInterval(function() {fonction_verif_chat();}, 1000);

la page list profil qui est appelé:

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="/chat/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="/chat/chat.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].''.$verif.'</a>';
}
}

voici l'image pour expliquer le probleme:

par rapport à l'image je suis sur la 2eme discution le pseudo en bleu et c'est le pseudo en rouge qui m'as écris donc la bulle devrais juste être à coté du 1er pseudo de la liste

5 réponses


Pour $sql3, je pense que c'est mysql_result($sql3) et pas fetch row. Sinon ta condition sera toujours différente de 0.

c'est pas ça le problème car si je fait ça:

$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 ($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>';
}

ça me retourne bien le bon nombre de message mais je veux juste affiche la bulle et le nombre de message si supérieur à 0

t'as essayé comme ça ?
if ($nbre_chat!=0) {

Sans les simple quote ?

oui ça change rien

la je comprend pas car si je remplace

if ($nbre_chat != 0)
{
 $verif = '<div class="new_chat"><p>'.$nbre_chat.'</p></div>';  
}

par

 $verif = '<div class="new_chat"><p>'.$nbre_chat.'</p></div>';

j'ai bien le bon nombre de message non lu qui s'affiche