Problème avec un Chat
- Accueil
- Forum
- Programmation
- PHP
- Problème avec un Chat
Paolacci Le 6 avril 2016 à 20:51 (Édité le 25 janvier 2019 à 17:50)
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 Le 6 avril 2016 à 21:12 (Édité le 1 janvier 1970 à 01:00)
Envoyé le par Ben : message
de façon à ce qu'on puisse te dire comment modifier ce code pour ajouter la date. Paolacci Le 6 avril 2016 à 21:49 (Édité le 1 janvier 1970 à 01:00)
<?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 Le 6 avril 2016 à 22:31 (Édité le 1 janvier 1970 à 01:00)
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 Le 6 avril 2016 à 22:38 (Édité le 6 avril 2016 à 22:42)
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 Le 7 avril 2016 à 18:50 (Édité le 1 janvier 1970 à 01:00)
@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 Le 7 avril 2016 à 23:57 (Édité le 1 janvier 1970 à 01:00)
Paolacci Le 8 avril 2016 à 18:06 (Édité le 1 janvier 1970 à 01:00)
M69-74 Le 8 avril 2016 à 19:56 (Édité le 1 janvier 1970 à 01:00)
Dis moi si ca ne arche toujours pas !
julienb Le 8 avril 2016 à 22:49 (Édité le 1 janvier 1970 à 01:00)
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 Le 9 avril 2016 à 12:32 (Édité le 1 janvier 1970 à 01:00)
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 Le 9 avril 2016 à 21:07 (Édité le 1 janvier 1970 à 01:00)
Merci d'avance 😀
julienb Le 10 avril 2016 à 01:02 (Édité le 1 janvier 1970 à 01:00)
@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 Le 10 avril 2016 à 10:56 (Édité le 1 janvier 1970 à 01:00)
Profil introuvable Le 10 avril 2016 à 12:03 (Édité le 1 janvier 1970 à 01:00)