Problème avec un Chat

Ce topic a été résolu
Paolacci

Paolacci Le 6 avril 2016 à 20:51 (Édité le 25 janvier 2019 à 17:50)

Bonsoir 
J'ai créer un chat en suivant son tutoriel, j'ai amélioré le chat et j'ai décidé d'ajouter la date mais je n'arrive pas à l'afficher sur le chat. La date s'envoie bien dans la base de donnée pourtant... 

Ensuite j'aimerais aussi affiché seulement les 10 premiers message, mais j'utilise pas l'ordre décroissant... Les derniers messages arrivent en bas !


Et pour finir j'aimerais sinon ajouter une scroll bar à droite pour défiler vers le bas quand il y a un certain nombre de message... 

Merci d'avance pour votre aide ! 
julienb

julienb Le 6 avril 2016 à 21:12

Salut, il faudrait que tu donnes la partie de ton code qui affiche :
Envoyé le par Ben : message
de façon à ce qu'on puisse te dire comment modifier ce code pour ajouter la date. 
Paolacci

Paolacci Le 6 avril 2016 à 21:49

Affiché les messages : 
 <?php 
                  $allmsg = $bdd->query('SELECT * FROM chat ORDER BY date LIMIT 0,11');
                  while($msg = $allmsg->fetch())
                  {
                  ?>
                  Envoyé le  par <b><?php echo $msg['pseudo']?></b> : <?php echo $msg['message']?><br /><br />
                  <?php
                  }
                  ?>
      <?php
                  if(isset($_POST['pseudo']) AND isset($_POST['message']) AND !empty($_POST['pseudo']) AND !empty ($_POST['message']))
                  {
                  $pseudo = htmlspecialchars($_POST['pseudo']);
                  $message = htmlspecialchars($_POST['message']);
                  $date = date("d/m/Y à H:i:s");
                  $insertmsg = $bdd->prepare('INSERT INTO chat(pseudo, message, date) VALUES(?, ?, UNIX_TIMESTAMP())');
                  $insertmsg->execute(array($pseudo, $message));
                  }   
                  ?>
PrimFX

PrimFX Le 6 avril 2016 à 22:31

Salut !

Dans ta requête, tu tries tes messages par date (ORDER BY date). Pour les avoir dans l'ordre décroissant, il suffit de rajouter un p'tit DESC 😀

Du coup, voici à quoi ressemblera ta requête:
<?php
$allmsg = $bdd->query('SELECT * FROM chat ORDER BY date DESC LIMIT 0,11');
?>
Dis moi si ça marche 😉
julienb

julienb Le 6 avril 2016 à 22:38 (Édité le 6 avril 2016 à 22:42)

Alors il faudrait que tu utilises un seul echo pour afficher pseudo, date et message. Si tu enchaines les instructions echo, ton code va mettre plus de temps à s'executer pour pas grand chose. Il te suffit pour ça de concaténer ta chaîne de caractères à afficher.

Remplace 
                  
?>
Envoyé le  par <b><?php echo $msg['pseudo']?></b> : <?php echo $msg['message']?><br /><br />
<?php
par
echo "Envoyé le  par <b>".$msg['pseudo']."</b>".date("d-m-Y")." à ".date("H:i:s"). ": ".$msg['message']."<br/><br/>";
et dis moi ce que ça donne. Je n'ai pas testé mais ça devrait marcher.
Paolacci

Paolacci Le 7 avril 2016 à 18:50

Merci pour vos réponses !

@PrimFx : Si je fais sa les messages s'afficheront d'en haut et moi j'aimerais qu'il arrive d'en bas.. 


Le Test 3 doit être tout en bas.... 


@julienb : Comme tu peux le voir sur le même script si je mes ce code, sa me met la date en temps réel et non la date qui est enregistrée pour chaque message.... 

julienb

julienb Le 7 avril 2016 à 23:57

@Paolacci A ce moment là il faut que tu aies un champ dans ta table qui enregistre la date et l'heure ou les messages sont postés.
Paolacci

Paolacci Le 8 avril 2016 à 18:06

@julienb : Oui c'est déjà fais et la date s'enregistre bien mais comme je disais plus haut, impossible d'afficher la date sur mon site.... 
M69-74

M69-74 Le 8 avril 2016 à 19:56

Salut ! Vérifie bien que la colonne date soit en DATETIME dans ta base de donnée. Ensuite, si c'est fait, essaye de vérifier que tout les champs correspondent bien aux infos dans ta bdd.
Dis moi si ca ne arche toujours pas !
julienb

julienb Le 8 avril 2016 à 22:49

D'accord, dans ce cas ta date ne s'affiche pas avec la fonction date mais un truc du style $msg['date']. Il faudrait que tu fasses un var_dump de ta variable $msg histoire de vérifier que la date est bien récupérée et son format.
Profil introuvable

Profil introuvable Le 9 avril 2016 à 11:36 (Édité le 9 avril 2016 à 11:38)

<?php $allmsg = $bdd->query('SELECT * FROM chat ORDER BY date DESC LIMIT 0,11'); 
while($msg = $allmsg->fetch()){
?>Envoyé le <?php echo $msg['date']?> par <b><?php echo $msg['pseudo']?></b> : <?php echo $msg['message']?><br /><br />
<?php
}
?>
Paolacci

Paolacci Le 9 avril 2016 à 12:32

Merci pour vos réponses ! 

@Marius : La date est bien récupéré dans la base de donnée.. Je n'arrive pas juste à l'afficher comme il faut sur le site. 

@julienb : Je suis assez débutant dans ce domaine. 

@Adel_XF : Si je mets ce code, sa affiche la date en chiffre : 
julienb

julienb Le 9 avril 2016 à 20:44 (Édité le 9 avril 2016 à 20:45)

echo "Envoyé le <b>".date("d-m-Y",$msg['date'])." par ".$msg['pseudo']." à ".date("H:i:s",$msg['date']).": ".$msg['message']."<br/><br/>";
Tente ça. 😀

voir ICI
La fonction date php peut te permettre de passer un type de formatage et un timestamp (ton "1460197832").
Paolacci

Paolacci Le 9 avril 2016 à 21:07

@julienb : Merci beaucoup pour ton aide ! Cela marche enfin !!! Cependant j'aimerais que le dernier message s'affiche en bas, tout en limitant à 10 le nombre de message.. Si jamais tu sais sinon pas grave! 

Merci d'avance 😀
Profil introuvable

Profil introuvable Le 9 avril 2016 à 22:31

Tu a skype ?
julienb

julienb Le 10 avril 2016 à 01:02

@julienb : Merci beaucoup pour ton aide ! Cela marche enfin !!! Cependant j'aimerais que le dernier message s'affiche en bas, tout en limitant à 10 le nombre de message.. Si jamais tu sais sinon pas grave!  
Il faut un ORDER BY date DESC dans la requète sql qui te sert à récupérer tes messages. Pour le nombre de messages, c'est un COUNT * en SQL..
Paolacci

Paolacci Le 10 avril 2016 à 10:56

@Adel_XF : Oui j'ai skype, si tu pouvais m'envoyer le tiens que je t'ajoute ! 

@julienb : Merci j'essayerai ! 
Profil introuvable

Profil introuvable Le 10 avril 2016 à 12:03

@Paolacci Ajoute live:adel232010 
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte