Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: Adel_XF, Paolacci, PrimFX
Ce topic a été résolu
Auteur Sujet: Problème avec un Chat

Paolacci

Messages: 16

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 ! 
Publicité

julienb

Messages: 34

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

Messages: 16

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
Membre Premium

Messages: 113

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 Sourire

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 Clin d'oeil

julienb

Messages: 34

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

Messages: 16

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

Messages: 34

@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

Messages: 16

@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.... 

Marius

Messages: 138

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

Messages: 34

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.

Adel_XF

Messages: 5

<?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

Messages: 16

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

Messages: 34

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. Sourire

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

Paolacci

Messages: 16

@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 Sourire
Publicité

Adel_XF

Messages: 5

Tu a skype ?

julienb

Messages: 34

@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

Messages: 16

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

@julienb : Merci j'essayerai ! 

Adel_XF

Messages: 5

@Paolacci Ajoute live:adel232010 


Veuillez vous connecter ou créer un compte pour poster une réponse