MySQL приват
1.
Роман (29.05.2011 / 23:30)
Помогите разобраться как сделать приват на MySQL.
Разбирал ротор, но все равно не понятно...Посоветуйте желательно на примерах
2.
Тимофей (29.05.2011 / 23:34)
1.
Nominal,
http://codepad.org/DGJSmLBT вот....подробнее могу Вк )) писал се
3.
Женек (30.05.2011 / 00:09)
1.
Nominal,
таблицу создаешь messeges
id|out|from|text|status|
1|id_пользователя от кого ушло|id_кому пришло|текст|статус прочтения|
ну и скриптик к ней)
4.
Дмитрий (30.05.2011 / 00:51)
3.
Basters, в роторе по дурному сделано. 2 отдельные таблицы. Можно всего лишь добавить 2 ячейки - подписка. Получатель и отправитель. По умолчанию обе Ячейки имеют значение "1". Если человек жмет "Удалить письмо" - единичка превращается в ноль. Если обе ячейки "0" - строка удаляется.
Ведь так проще, и меньше места, чем 2 одинаковые таблицы "Входящие/Исходящие" ))))
5.
Станислав (30.05.2011 / 01:18)
1.
Nominal, ты не прими, конечно, близко к сердцу, но дуй в примеры на php.su
Если сможешь написать простейшую гостевую книгу и систему авторизации (причём не тупо ctrl+c - ctrl+v, а во всём разберёшься досканально), то тогда не возникнет таких вопросов.
6.
KOZZ (30.05.2011 / 06:22)
1 таблица:
id (ид письма, инкремент), from(ид юзера от кого письмо), to(ид юзера кому письмо), read (1-прочитано, 0-не прочитано), message(самое сообщение), time(время отправки письма)
-------------------
вот и все, делов то
7.
Роман (30.05.2011 / 09:55)
SNELS (30 Мая 2011 / 01:18)
1. Nominal, ты не прими, конечно, близко к сердцу, но дуй в примеры на php.su
Если сможешь написать простейшую гостевую книгу и систему авторизации (причём не тупо ctrl+c - ctrl+v, а во всём разберёшься досканально), то тогда не возникнет таких вопросов.
Я и так написал гостевую, авторизацию/регистрацию, а вот с приватом проблемы возникли
Добавлено через 01:35 сек.
eGo (30 Мая 2011 / 06:22)
1 таблица:
id (ид письма, инкремент), from(ид юзера от кого письмо), to(ид юзера кому письмо), read (1-прочитано, 0-не прочитано), message(самое сообщение), time(время отправки письма)
-------------------
вот и все, делов то
а обрабатывать как ? вот я создал таблицу почти идентичную твоей...
Но как обработать ее не понимаю
Как понять где чье письмо?
Дима лондон, можешь подробнее про использование таблицы такой рассказать?
8.
KOZZ (30.05.2011 / 13:13)
Я и так написал гостевую, авторизацию/регистрацию, а вот с приватом проблемы возникли
глубоко соменваюсь
9.
Валерий (30.05.2011 / 14:01)
Вот мой рабочий код для привата.. тупо вставить не получится, но может переделаешь под свои нужды.
<?
//$id - ид юзера, которому пишем.
//Сообщения---
$messages=Array();
if($User->id AND $User->id<>$id)
{
$res=$db->prepare("UPDATE messages SET readed='1' WHERE messages.user_to=? AND messages.user_from=?");
$res->execute(Array($User->id,$id));
include_once D.'/inc/func/pages.php';
//Сообщений на страницу
$on_page=40;
//Всего сообщений между пользователями---------
$res=$db->prepare("SELECT COUNT(*) AS cnt FROM messages
WHERE (messages.user_to=? AND messages.user_from=?) OR (messages.user_to=? AND messages.user_from=?);");
$res->execute(Array($User->id,$id,$id,$User->id));
if($rw=$res->fetch(A))$kolvo=$rw['cnt'];else $kolvo=0;
//---------------------------------------------
//Листинг страниц--------
$arr=pages_arr($kolvo,$on_page);
$start=$arr['start'];
$vivod['pages']=pages($arr['page'],$arr['max_page'],H.'/user'.$id.'&p={page}');
//-----------------------
//Получаем список сообщений-----
$res=$db->prepare("SELECT messages.*,users.name,users.id AS u_id,users.last_time
FROM messages,users
WHERE ((messages.user_to=? AND messages.user_from=?) OR (messages.user_to=? AND messages.user_from=?))
AND users.id=messages.user_from
ORDER BY messages.time DESC LIMIT $start,$on_page;");
$res->execute(Array($User->id,$id,$id,$User->id));
while($rw=$res->fetch(A))
{
$rw['time']=unix2human($rw['time']);
$rw['mes']=nl2br($rw['mes']);
$messages[]=$rw;
}
//------------------------------
}
//------------
?>
Добавлено через 01:19 сек.
Вот код отправки сообщения
<?php
//Отправляем сообщение юзеру---------------
if($User->id AND isset($_POST['message']) AND $User->id<>$id)
{
$message=str2base($_POST['message']);
$str_len=utf8_strlen($message);
if($str_len<2 OR $str_len>500)error('Сообщение может быть от 2х до 500 символов.');
$res=$db->prepare("INSERT INTO messages (user_to,user_from,mes,time) VALUES (?,?,?,UNIX_TIMESTAMP())");
$res->execute(Array($id,$User->id,$message));
loc('user'.$id);
exit;
}
?>
10.
Валерий (30.05.2011 / 14:05)
Ну и структура таблицы
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_from` int(11) NOT NULL,
`user_to` int(11) NOT NULL,
`mes` varchar(1500) NOT NULL,
`time` int(11) NOT NULL,
`readed` set('0','1') NOT NULL DEFAULT '0',
11.
Роман (30.05.2011 / 17:58)
9, 10, Спасибо) Буду разбираться..)
12.
asterixos (01.06.2011 / 14:19)
Делается это примерно так
<?
//подключаем файл базы данных
include("db.php");
//устанавливаем подключение к базе
openDB();
//создаем sql-запрос к базе
$db=mysql_query("SELECT * FROM твоя_таблица WHERE NICK=\"$NICK\"");
//выводим циклом все сообщения где НИК в таблице равен Нику,кому хотим написать приватно
while($db2=mysql_fetch_assoc($db))
{
echo $db[NICK];
}
?>
Добавлено через 01:08 сек.
правда там еще должен быть скрипт авторизации и сама оболочка куда ты будешь заходить))
URL:
https://visavi.net/topics/21970