всем привет) в общем такой вопрос:
мне нужно сделать систему отправки сообщений на стену, ну типо как вконтакте(wall.posts), типо что бы пользователь не обязательно зарегистрирован мог зайти к зарегистрированому пользователю на страницу и написать сообщение которое публикуется на его странице......
отправленные сообщения должны "знать" своих пользователей, ну типо что бы сообщение отпрвленное конкретному пользователю, относилось непосредственно к нему)
у меня есть база данных с двумя таблицами
таблица users где хранится инфа о зареганых пользователях, с полями:
user_id
username
email
password
таблица messages где хранятся сообщения пользователей, с полями:
id
text1
date
в общем написаные сообщения заносятся в таблицу messages......мне говорили что типо надо создать в таблице сообщений дополнительное поле, куда будут записыватся id пользователей кому адресованы сообщения, пробовал так делать, но мне так и никто не помог написать правильный запрос на запись в базу id из другой таблицы......еще говорили что можно это сделать както через невидимое поле, и с помощью jquery присваивать сообщения id получившых пользователей и сразу же выводить их на стену, (кстате по такой технологии сделаны соц сети facebook и вк)......но тоже както смутно обьяснили, да и не получилось у меня так сделать......так что помогите плз кто знает как это делать))
1. MBmusic - 22 Октября, 2011 - 19:25:03 - перейти к сообщению
2. Данил_123 - 22 Октября, 2011 - 19:34:16 - перейти к сообщению
Вы соц. сеть пишите? Ну правильно говорили.. Это нужно для того чтоб определить отправителя.. Выложите код, поглядим, что можно сделать
3. MBmusic - 22 Октября, 2011 - 19:50:01 - перейти к сообщению
нет, я не соц сеть делаю) просто появилась идейка сайтика, решил чтото динамическое замутить с регистрацией пользователей и стеной с постами...
что касается первого варианта с добавлением поля для id пользователей......
в общем я создал в таблице messages поле user_id в которое должны записыватся id пользователей из другой таблицы users, и соответственно выводится потом для каждого пользователя свои сообщения
вот запрос на запись в базу сообщения и соответственно в новое user_id запись id поьзователя из другой таблицы:
$queryreg = mysql_query("INSERT INTO `messages` (`text1`, `date`, `user_id`) VALUES ('$text1', '$date', '$user_id')");
но запрос неработает, незаписывает в базу id пользователей......
второй способ(мне он больше нравится, я больше склоняюсь к нему), это через jquery, токо хз как))
в общем при добавлении сообщения на стену, должно приписывать сообщению id поьзователя кому было отправлено сообщение...
<table style='padding-bottom:20px;' id="65">
...
...
...
</table>
вот типо отправленное сообщение, как видно id="65", это id пользователя получившего сообщение, но есть проблемка) при добавлении сообщения приписывает id первого пользователя в базе, неважно какому пользователю отправлять сообщение, всегда буит приписывать первому......
вот что я примудрил)) :
<table style='padding-bottom:20px;' id="
<?php
$ot = mysql_query ("SELECT * FROM `users` WHERE `user_id`=`user_id`");
$ress = mysql_fetch_array ($ot);
echo $ress['user_id'];
?>
">
...
...
...
</table>
и пока не получается сделать что бы сообщения "знали" своих пользователей), и сам jquery скрипт который буит генерить отправленные сообщения......мб ктото сможет помочь))?
что касается первого варианта с добавлением поля для id пользователей......
в общем я создал в таблице messages поле user_id в которое должны записыватся id пользователей из другой таблицы users, и соответственно выводится потом для каждого пользователя свои сообщения
вот запрос на запись в базу сообщения и соответственно в новое user_id запись id поьзователя из другой таблицы:
$queryreg = mysql_query("INSERT INTO `messages` (`text1`, `date`, `user_id`) VALUES ('$text1', '$date', '$user_id')");
но запрос неработает, незаписывает в базу id пользователей......
второй способ(мне он больше нравится, я больше склоняюсь к нему), это через jquery, токо хз как))
в общем при добавлении сообщения на стену, должно приписывать сообщению id поьзователя кому было отправлено сообщение...
<table style='padding-bottom:20px;' id="65">
...
...
...
</table>
вот типо отправленное сообщение, как видно id="65", это id пользователя получившего сообщение, но есть проблемка) при добавлении сообщения приписывает id первого пользователя в базе, неважно какому пользователю отправлять сообщение, всегда буит приписывать первому......
вот что я примудрил)) :
<table style='padding-bottom:20px;' id="
<?php
$ot = mysql_query ("SELECT * FROM `users` WHERE `user_id`=`user_id`");
$ress = mysql_fetch_array ($ot);
echo $ress['user_id'];
?>
">
...
...
...
</table>
и пока не получается сделать что бы сообщения "знали" своих пользователей), и сам jquery скрипт который буит генерить отправленные сообщения......мб ктото сможет помочь))?
4. Данил_123 - 22 Октября, 2011 - 20:32:05 - перейти к сообщению
впринципе можно сделать, если что этот пост редокну.. Есть идейка
5. DeepVarvar - 22 Октября, 2011 - 21:30:19 - перейти к сообщению
MBmusic пишет:
Из темной материи..можно это сделать както через невидимое поле
MBmusic пишет:
никто не помог написать правильный запрос на запись в базу id из другой таблицы
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- $user_id = 4567;
- $message = "Шышел пышел...";
- VALUES (NULL,$user_id,'$message',NOW())");
(Добавление)
MBmusic пишет:
Ага... jquery прямо так с базой умеет работать.второй способ(мне он больше нравится, я больше склоняюсь к нему), это через jquery
(Добавление)
MBmusic пишет:
Выкинуть и забыть как самый страшный срам в жизни.вот что я примудрил)) :
(Добавление)
Итак. Две таблицы.
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- CREATE TABLE IF NOT EXISTS users (
- id BIGINT NOT NULL AUTO_INCREMENT,
- name CHAR(128) NOT NULL,
- PRIMARY KEY (id)
- )
- ENGINE = MYISAM;
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- CREATE TABLE IF NOT EXISTS messages (
- id BIGINT NOT NULL AUTO_INCREMENT,
- user_id BIGINT NOT NULL,
- theme CHAR(255) NOT NULL,
- mess TEXT NOT NULL,
- mdate DATETIME NOT NULL,
- PRIMARY KEY (id)
- )
- ENGINE = MYISAM;