Перейти к публикации

Личные сообщения на PHP


555

Рекомендованные сообщения

Всем привет, пишу сайт и в нём написал раздел Личные сообщения. Посещаешь страницу человека, и кнопка отправить сообщения.

в БД сделал таблицу

id

from_login

to_login

message

time

Написал скрипт на php, всё работает, но есть проблема. Сообщения находятся всегда вверху отправителя, я сортировал по времени, но оно сортирует только его смс, а после его сообщений уже находятся мои. Буду очень благодарен если поможете, гуглил не нашёл ничего годного, Мне нужно чтобы были сообщения в порядке, последовательно. Написал он, если я ответил ты выводить его сообщение потом моё. У меня всегда находятся сообщения верху того, с кем мы переписываемся, потом как его сообщения закончились, идут мои.

Вот мой код php:

<?php

//Подключение к БД
$connect = mysqli_connect('localhost', 'root', '', 'ruletka');

//Данные в куки
$login = $_COOKIE['pass'];

$time = date("H:i:s");

//Выводим ник получателя
$query = ("SELECT * FROM `users` WHERE `id` = '$_GET[id]'");
$data = mysqli_query($connect, $query);
$result = mysqli_fetch_row($data);
$result[1];

//Поле и кнопка
$message = $_POST['message'];
$enter = $_POST['enter'];

//Заносим сообщение в бд
if (isset($enter) && !empty($message)) {
$query = ("INSERT INTO `privatemessage` (`from_login`, `to_login`, `message`, `time`) VALUES ('$login', '$result[1]', '$message', '$time')");
$data = mysqli_query($connect, $query);
}

echo "<hr>
<p class='login'><a href = 'user.php?id=$result[0]'>$result[1]</a></p>
<div class='bordertop'></div>

<div class='bordersend'></div>
<form action ='privatemessage.php?id=$result[0]' method='POST'>
<div class='send'>
<textarea name = 'message' rows='2' cols='60' placeholder='Напишите сообщение...'></textarea>
</div>
<div class='sendbuttom'> 
<input type='submit' name='enter' size='20'>
</div>
</form>";

?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Диалоги</title>
<style type="text/css">
h2{
	z-index: 2;
}
	.border{
		overflow: scroll;
		border: 1px solid #E3E4E8;
		background: white;
		position: absolute;
		top: 104px;
		left: 400px;
		width: 550px;
		height: 455px;
	}
	hr{
		
   border: none; /* Убираем границу */
   background-color:#4A76A8; /* Цвет линии */
   height: 47px; /* Толщина линии */
   width: 1367px;
   position: absolute;
   top: -10px;
   left: -1px;
	}
.bordersend{
border: 1px solid #E3E4E8;
background: white;
position: absolute;
top: 560px;
left: 400px;
width: 550px;
height: 50px;
}

.send{
position: absolute;
top: 570px;
left: 410px;
}
textarea{
resize: none;
}
.sendbuttom{
position: absolute;
top: 570px;
left: 860px;
}
input{
height: 35px;
}
.bordertop{
border: 1px solid #E3E4E8;
background: white;
position: absolute;
top: 53px;
left: 400px;
width: 550px;
height: 50px;

}

.login{
z-index: 3;
position: absolute;
top: 35px;
left: 630px;
font-size: 30px;
}
.message{
	position: absolute;
	top: 20px;
	left: 30px;
}
a{
text-decoration: none;
}

</style>
</head>
<body bgcolor='#EDEEF0'>
<div class='border'>

<div class = 'message'>
<?php

////Выводим ник отправителя
$query2 = ("SELECT * FROM `users` WHERE `login` = '$login'");
$data2 = mysqli_query($connect, $query2);
$result2 = mysqli_fetch_row($data2);

//Выводим ник получателя
$query1 = ("SELECT * FROM `users` WHERE `id` = '$_GET[id]'");
$data1 = mysqli_query($connect, $query1);
$result1 = mysqli_fetch_row($data1);

//Выводим сообщение для получателя
$query = ("SELECT * FROM `privatemessage` WHERE `from_login` = '$result1[1]' and `to_login` = '$login' ");
$data = mysqli_query($connect, $query);
$i = 1;
while ($result = mysqli_fetch_array($data)) {
echo "<div style = 'overflow-auto'><a href = 'user.php?id=$result1[0]'>$result[1]</a><br>$result[3]<br>$result[4]<br></div><br>";
$i++;
}

////Выводим сообщение для отправителя
$query = ("SELECT * FROM `privatemessage`  WHERE `to_login` = '$result1[1]' and `from_login` = '$login' ");
$data = mysqli_query($connect, $query);

$i = 1;
while ($result = mysqli_fetch_array($data)) {
echo "<a href = 'user.php?id=$result2[0]'>$result[1]</a><br>$result[3]<br>$result[4]<br><br>";
$i++;
}
?>
</div>
</div>
</body>
</html>

 

Отправлено спустя 2 минуты 45 секунд:

В БД добавляется всё правильно, вся последовательность верная. Вот с выводом проблема.

Ссылка на сообщение
Поделиться на других сайтах

Пожалуйста, войдите для комментирования

Вы сможете оставить комментарий после входа



Войти сейчас
×
×
  • Создать...