[RESOLU] Notifications

Eléphant du PHP | 386 Messages

15 juin 2013, 15:26

Bonjour,

J'ai une messagerie, à chaque message envoyé, une notification arrive chez le destinataire.
Mais le problème c'est que la notification est visible chez tous les membres, même celui qui a envoyé le message.

Voici ma table wa_messagerie :

id
id_expediteur
id_destinataire
message
lu
timestamp


Voici le code notification.php inclus dans un header qui est actualisé en ajax :
<?php
require_once('../include/config.inc.php');
$req = $connect->prepare('SELECT COUNT(id) as row FROM wa_messagerie WHERE lu=:lu AND id_destinataire="'.$_SESSION['id'].'"');
$req->execute(array(':lu'=>false));
$resultat = $req->fetch(PDO::FETCH_OBJ);
?>
<?php if($resultat->row > 0 && $resultat !== false) { echo $resultat->row; } ?>
Dès que je rajoute le bout de code : AND id_destinataire="'.$_SESSION['id'].'", la notification ne fonctionne plus,
si j'enlève le bout de code, elle fonctionne mais chez tous les membres.

Mon script ajax :

[javascript]function getNotifications() {
J.ajax({
url: "../ajax/notifications.php",
ifModified:true,
statusCode: {
500: function(){
J('#server-500').html('Serveur en surcharge, patientez quelques instants...');
},
},
success: function(content){
J('.messagesValue').html(content);
if(content>0){ J('.messagesValue').css({ 'display':'block' }); }
if(content<1){ J('.messagesValue').css({ 'display':'none' }); }
}
});
setTimeout(getNotifications, 60000);
}[/javascript]
Merci d'avance ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 juin 2013, 16:48

Salut

Quitte a utiliser une requête préparée autant le faire pour l'id même si celle ci n'est pas utile.

As tu testé ta requête avec un client SQL ?

Les champs numériques n'ont pas besoin d'être délimité.
Le délimiteur des chaîne c'est une quote (') et non la double quote (").

Test le script php directement avec ton navigateur sans utiliser Ajax.

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 96 Messages

16 juin 2013, 18:15

Enlève Ajax

Eléphant du PHP | 386 Messages

17 juin 2013, 14:34

C'est résolu :

Voila la bonne requête
$req = $connect->prepare('SELECT COUNT(id) as row, id_destinataire, id_expediteur FROM wa_messagerie WHERE lu=0 AND id_destinataire=:id_expediteur');
$req->execute(array(':id_expediteur'=>$_SESSION['id']));
$resultat = $req->fetch(PDO::FETCH_OBJ);
Merci quand même ;)