Выпуск №9.
Система обмена личными сообщениями
Если видео не загружается, то можно посмотреть его здесь
Мы с Вами уже вывели всех пользователей нашего сайта на страницу, а также сделали ссылку "Написать сообщение". В этом уроке мы с Вами реализуем систему обмена личными сообщениями.
После урока Вы сможете создать свою систему обмена сообщениями между пользователями. Просмотрев урок, Вы узнаете:
- Где хранятся сообщения.
- Как отличить сообщение одного пользователя от другого.
- Как отправляются сообщения.
- Как выводится сообщения на личной странице пользователя.
Если Вы хотите скачать видео к себе на компьютер, то посмотрите инструкцию: как скачивать с YouTube.
P.S. Чтобы понять материал данного урока, Вы должны достаточно неплохо знать PHP и MySQL. Если Вы чувствуете, что знаете их недостаточно, то приобретите Видеокурс "PHP и MySQL с Нуля до Гуру 2.0": https://srs.myrusakov.ru/php7.
Комментарии (37):
Добавить комментарий:
$mysqli->query("INSERT INTO `messages` (`from`, `to`, `text`) VALUES ('$from', '$to', '$message')");
`message` на `text`
При отправлении сообщения определенному пользователю визуально все замечательно, но к сожалению таблица messnges остается пустой.
Проблема начинается с момента - Отправить сообщение пользователю -
"ABC"-не выводится. До этого момента все шло прекрасно. Несколько раз все перепроверил.
Может есть какое-то решение или я что то упустил?
Да, кстати, я чайник!
<div style = "text-align: center;">
<h1>Сообщения</h1>
<table border = "1" style= "margin: 0 auto;" width = "50%">
<tr>
<td>От кого</td>
<td>Сообщение</td>
<td></td>
</tr>
<?php
$messages = getAllMessages(getIDOnLogin($_SEESION["login"]));
for ($i = 0; $i < count($messages); $i++) {
echo "<tr>";
$from = getUserOnID($messages[$i]["id"]);
echo "<td><b>".$from["login"]."</b></td>";
echo "<td>".$messages[$i]["message"]."</td>";
echo "<td>";
echo "<a href='smessage.php?to=".$from["id"]."' title='Ответить'>Ответить</a>";
echo "</td>";
echo "</tr>";
}
?>
</table>
</div>
Ошибка
SQL-запрос: Изменить
SELECT `tables`
FROM`phpmyadmin`.`pma_recent`
WHERE `username` ='root'
Ответ MySQL: #1146 - Table 'phpmyadmin.pma_recent' doesn't exist
у меня mysql.
мне кажется, функции я переписал неправильно... (под MySQL)
[PHP]
$db_host = 'db02.hostline.ru';
$db_user = 'не скажу';
$db_pass = '•••••••';
$db_base = 'vh108282_chat';
function getUserOnID($id_user) {
mysql_connect ("$db_host","$db_user", "$db_pass");
mysql_select_db ("$db_base");
$result = mysql_query("SELECT * FROM messages WHERE id='$id_user'");
$query = mysql_fetch_array($result);
return $result->mysql_fetch_assoc();
}
function getIdOnLogin($login) {
mysql_connect ("$db_host","$db_user", "$db_pass");
mysql_select_db ("$db_base");
$result = mysql_query("SELECT id FROM messages WHERE login='$login'");
$row = $result->mysql_fetch_assoc();
$query = mysql_fetch_array($result);
return $row['id'];
}
[/PHP]
буду очень признателен!