Page 1 sur 1

Cacher le "0" des messages reçus en PHP ou CSS

Posté : 20 févr. 2013, 02:23
par nico44530
Bonjour,

J'ai testé une messagerie en ajax, elle fonctionne très bien, le seul petit problème est que je n'arrive pas à cacher le "0" de la notification qui affiche le nombre de message reçu et non lu.
L'intérêt est que cela attirera les yeux du membre vers le rond rouge avec la notification. Si le rond existe déjà, cela se voit moins bien si un "1" remplace le "0" :|

J'ai essayé avec un if($resultat>0) { "J'affiche la notification avec un echo" } sinon j'affiche rien if($resultat=0) { " " } (Voir code dessous)
Et cela ne fonctionne pas :(

Ma base de donnée contient :

id INT(11) Auto Incre
message TEXT
lu TINYINT(1) : 0 = non-lu et 1 = lu
date TIMESTAMP CURRENT_TIMESTAMP

Voici mes codes :
<?php
$sql = connect_sql();
$query = 'SELECT count(id) as row FROM wa_notifications WHERE lu=0'; 
$result = mysql_query($query) or die (mysql_error()); 
$resultat = mysql_fetch_row($result); ?>
	<li class="dropItem float-r dropdown"><a href="" class="link-mail dropdown-toggle" data-toggle="dropdown"></a>
	<span class="jewelCount"><?php if($resultat>0) { ?><span class="messagesValue"><?php echo $resultat[0]; ?></span><?php } else { if($resultat=0) {  } ?><?php } ?></span>
		<ul class="dropdown-menu" style="margin-left: -13px;">
			<div class="arrowMenu"></div>
			<li class="dropsubItem"><a href="" class="dropsubLink">Messages reçus</a></li>
			<li class="dropsubItem"><a href="" class="dropsubLink">Envoyer un message</a></li>
			<li class="dropsubItem"><a href="" class="dropsubLink">Messages envoyés</a></li>
			<li class="dropsubItem"><a href="" class="dropsubLink">Voir tous mes messages</a></li>
		</ul>
	</li>
L'ajax fonctionne normalement très bien, je met le code pour mieux comprendre :

[javascript]
function getNotifications() {
$.ajax({
url: "../ajax/notifications.php",
ifModified:true,
success: function(content){
$('.messagesValue').html(content);
}
});
setTimeout(getNotifications, 5000);
}
getNotifications();
[/javascript]

Ainsi que la page notifications.php qui doit peut-être être à l'origine de ce problème :
require('../include/functions.inc.php');

$sql = connect_sql();
$query = 'SELECT count(id) as row FROM wa_notifications WHERE lu=0'; 
$result = mysql_query($query) or die (mysql_error()); 
$resultat=mysql_fetch_row($result);
if($resultat>0) {
	echo $resultat[0];
} elseif($resultat=0) {
	echo '';
}
Merci d'avance pour vos messages

Re: Cacher le "0" des messages reçus en PHP ou CSS

Posté : 20 févr. 2013, 03:37
par sam12
if($resultat==0)
? Avec 2 =

Re: Cacher le "0" des messages reçus en PHP ou CSS

Posté : 20 févr. 2013, 04:02
par nico44530
Merci pour ton message, et non ça ne fonctionne pas :(
Bien essayé pourtant :|

Autres idées s'il vous plais ?

Merci d'avance

Re: Cacher le "0" des messages reçus en PHP ou CSS

Posté : 22 févr. 2013, 00:17
par moogli
salut,

<span class="jewelCount"><?php if($resultat>0) { ?><span class="messagesValue"><?php echo $resultat[0]; ?></span><?php } else { if($resultat=0) { } ?><?php } ?></span>

$resutat est un tableau et non un nombre. Ton premier if n'a donc aucun sens :)
donc un seul if suffit.
<p class="jewelCount">
<?php 
if($resultat !== false && $resultat['row'] > 0) { 
    echo '<span class="messagesValue">'. echo $resultat['row'].'</span>';
}
?>
</p>
par exemple


@+

Re: Cacher le "0" des messages reçus en PHP ou CSS

Posté : 22 févr. 2013, 02:17
par nico44530
Cela ne va pas ralentir le serveur s'il y a beaucoup de visiteurs en un seul moment qui reçois des notifications ?
Ou alors mettre le settimeout à rafraichir toute les 1 minute ?