Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
15 / 15 / 4
Регистрация: 21.04.2014
Сообщений: 179
1

Обработка данных из БД

30.03.2015, 17:29. Показов 496. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем я увлекаюсь PHP, и практикуюсь во всяких задачах... Решил сделать сайт для общения "своих". Настало время делать личные сообщения и тут то я и затупил...

Сообщения хранятся в БД, в таблице pmessages, для того, чтобы выбирать сообщения определенного пользователя есть столбец "pmessage_to", где содержится ID пользователя, которому отправляется сообщение. А также есть столбец "pmessage_from", которая содержит ID отправителя.

Пытался вывод сообщений через while: (сперва сделал вывод только полученных сообщений)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
$sg_pmd = mysql_query("SELECT * FROM pmessages WHERE pmessage_to='$user_id'"); // Selecting personal messages data
$sd_pmd = mysql_fetch_assoc($sg_pmd); // Selected personal messages data
if (empty($sd_pmd)){
echo "Cообщений нет.";
}
else {
while ($sd_pmd = mysql_fetch_assoc($sg_pmd)){
    
$user_comment = $sd_pmd["pmessage_text"];
$comment_author = $sd_pmd["pmessage_to"];
$comment_date = $sd_pmd["pmessage_time"];
$comment_user_id = $sd_pmd["pmessage_from"];
 
switch ($comment_user_id){
    case 1:
    $pmessage_author_name = "Александр";
    break;
    case 2:
    $pmessage_author_name = "Андрей";
    break;
    case 3:
    $pmessage_author_name = "Никита";
    break;
    case 4:
    $pmessage_author_name = "Гияс";
    break;
    case 5:
    $pmessage_author_name = "Юра";
    break;
    case 6:
    $pmessage_author_name = "Максим";
    break;
    case 7:
    $pmessage_author_name = "Павел";
    break;
    case 8:
    $pmessage_author_name = "Илья";
    break;
    case 9:
    $pmessage_author_name = "Тестер";
    break;
}
print <<<END
<p>
<div class='pmessage_from'>
$user_comment
<div class='small_text'>
<a href='user.php?id=$comment_user_id' title='Перейти на страницу пользователя' id='pmessage_link'>$pmessage_author_name</a>, $comment_date
</div>
</div>
</p>
END;
}
}
А вот как сделать вывод еще и отправленных сообщений — не знаю пока. Думаю нужно как-то сделать массив. Но как правильно его описать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2015, 17:29
Ответы с готовыми решениями:

Обработка данных Excel документа, реально ли обработать такую структуру данных?
Добрый день. Посоветуйте ход решения задачи. Необходимо написать обработку которая будет...

Обработка данных через запросы SQL внутри приложения (виртуальная база данных)
Есть данные, которые с точки зрения удобства написания кода, проще всего обрабатывать запросами...

Обработка данных типа запись (комбинированный тип данных).
Вывести ФИО и отметки по физике студентов, имеющих средний балл, больше 4,5. Помоги...

Динамические поля и обработка данных базы данных (mdb)
У меня вопрос. Создал базу данных mdb Acceess. Там таблицы и запросы. В Delphi создал форму для...

6
15 / 15 / 4
Регистрация: 21.04.2014
Сообщений: 179
02.04.2015, 20:12  [ТС] 2
Up?
0
3 / 3 / 3
Регистрация: 29.03.2015
Сообщений: 20
02.04.2015, 21:06 3
MySQL
1
"SELECT * FROM pmessages WHERE pmessage_from='$user_id'"
Получение всех отправленных сообщений данного пользователя. Вывод аналогично вашему примеру.
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
02.04.2015, 21:27 4

Не по теме:

KVESTOR, может быть я не прав - но можете поставить себе на сервер форум phpbb/punbb и будет где общаться со своими.

https://ru.wikipedia.org/wiki/PunBB
https://ru.wikipedia.org/wiki/PhpBB

Но делать что-то своё что бы набраться опыта тоже верно. Даже надо.



Добавлено через 9 минут
KVESTOR, таблица сообщений приватной переписки может быть такой

sender_uid | delivery_uid | send_date | read_date | is_new_message | message_content

где
sender_uid идентификатор отправителя
delivery_uid идентификатор получателя
send_date дата отправки
read_date дата прочтения
is_new_message поле enum статуса прочтенного сообщения
message_content содержимое сообщения

Добавлено через 10 минут
Проверяете поле is_new_message. Если хоть в одном из них есть значение 1 отображаете для этого пользователя иконку что поступило новое сообщение.
0
15 / 15 / 4
Регистрация: 21.04.2014
Сообщений: 179
02.04.2015, 21:35  [ТС] 5
Спасибо, но мне хочется самому сделать.
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
02.04.2015, 21:50 6
PHP
1
2
3
4
5
6
7
8
$sender_id = 0;
 
$result = mysql_query("SELECT * FROM pmessages WHERE pmessage_from=$sender_id;");
 
while( $pmessage_from = mysql_fetch_assoc($result) ) {
    
    echo $pmessage_from['pmessage_text'].' | '.$pmessage_from['pmessage_to'].' | '.$pmessage_from['pmessage_time'].'<br>';
}
Добавлено через 8 минут
PCGeek, Имхо, здесь
SELECT * FROM pmessages WHERE pmessage_from='$user_id'
одинарные кавычки не надо! Так как поле pmessage_from должно иметь числовой тип данных. Там значение без кавычек. Так должно быть.
0
3 / 3 / 3
Регистрация: 29.03.2015
Сообщений: 20
02.04.2015, 23:03 7
Цитата Сообщение от tolimadokara Посмотреть сообщение
PCGeek, Имхо, здесь одинарные кавычки не надо! Так как поле pmessage_from должно иметь числовой тип данных. Там значение без кавычек. Так должно быть.
Ну хуже от их использования не станет, MySQL сам преобразует в нужный тип. Для простоты и надежности от SQL-инъекций в одинарные кавычки берут все переменные. Ну и если все же убрать их, то желательно, перед выполнение запроса, сделать так:
PHP
1
$sender_id = intval($sender_id);
0
02.04.2015, 23:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2015, 23:03
Помогаю со студенческими работами здесь

Каким образом организовывать ввод данных для поддержки программной обработка неправильно введенных данных?
Каким образом организовывать ввод данных для поддержки программной обработка неправильно введенных...

Обработка символьных данных.Множественные типы данных
Вставьте в слове после «кас» букву «а», если ее там нет.

Обработка и сохранение Данных в Базе Данных
У меня несколько вопросов: 1) Можно ли делать так как я показал на скрине, при нажатии на кнопку,...

Ошибка при загрузке данных через (Обработка "Выгрузка и загрузка данных XML")
Доброго времени суток. Возникла проблема при загрузке документов с УПП 1.3. (не типовая) на УПП...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru