Как да записвам мненията на потребител.

index

Super Moderator
Здравейте,
решил съм да направа система за блог.
Всеки потребител да си прави собствен блог по дадени от мене и др дизайни.
Това не е много важно.
Сега идва проблема ми:

Регистрирам потребители.
И след това искам регистрацията да важи за всички блогове./мога да се справа с това/
Но как да записвам на всеки блог , тема , потребител и мненията във всички блогове.
Ето аз как си го представям,примерно :
таблица : REG ще съдържа имената на потребителите.
таблица : Blog ще съдържа блоговете,темите,мненията към дадена тема.
И съответно ще взимам от REG името и ще го правя на сесия и ще се записват нещата на потребителя в блога - темата - мнението.
Като ще си изкарвам резултатите
SELECT max(userpost) as userpost FROM `Blog` WHERE user="hasan" AND blogid = "1"

Правилно ли мисля?Правилно ли съм се насочил?Има ли по-лесен начин?
Кажете ако някъде бъркам в разсъжденията.
 
Аз си го представям така:

Таблици:

Код:
> users
  |
  --- ID
  --- Информацията дето ще записваш за потребителите

> blogs
  |
  --- ID
  ---- Име
  ----- useridstart -- Тука правиш една релация (незнам дали е така думата) и извеждаш информация за юзъра. Този дето блога е негов. Това е id то на юзъра от таблицата users
  ------ Други опции за блога, като цветове и т.н.

> topics
  |
  --- ID
  ---- Заглавие
  ----- blogid -- Същото като userid на предишната само че го свързваш с ID-то в таблицата blogs
 ------- дата на добавяне -- записвай я като UNIX timestamp

> posts
  |
  --- ID
  ---- userid -- Пак го свързваш с дадения юзър
  ----- topicid -- Свързваш с ID от таблицата topics
  ------ текст -- текста на мнението
  ------- дата на добавяне -- записвай я като UNIX timestamp

Ето как се навързаха:

users -> blogs -> topics -> posts
Свързват се посредством ID-то на предходното.

За topics не съм сложил userid колона, защото се предполага, че само собственика на блога ще пуска теми.

Хубаво е да прочетеш тази тема:
http://web-tourist.net/forum/viewtopic.php?p=76504#76504

По-специално мнението на админ.
 
Здравей!

таблица : REG ще съдържа имената на потребителите.
таблица : Blog ще съдържа блоговете,темите,мненията към дадена тема.

Как бих го направил аз:

1) таблица РЕГ
2) таблица БЛОГ - тук са блоговете (ако са постоянни, вкарай ги в един обикновен масив във файл, който ще инклудваш)
3)таблица ТЕМА, тук имаш поле "блог_ид", в което записваш ид-то на блога или ключа към съответния елемент в масива, ако избереш масив и поле "последно_менение", в което записваш ид-то на последния пост по темата.
3) таблица МНЕНИЕ в което имаш поле да кажем "тема_номер", в което записваш ид-то и поле "юзер_ид", в което записваш ид-то на автора

Когато потребителя се логне, пускаш му сесия с ид-то от таблица РЕГ и каквато още ти е нужна...
Когато пусне тема, записваш темата в тбл ТЕМА, а мнението към нея в МНЕНИЕ като за "тема_номер" слагаш ид-то на темата, а за "юзер_ид" слагаш ид-то от сесията, след това ъпдейтваш полето "последно_мнение" в ТЕМА и записваш ид-то на мнението.

ЛИСТВАНЕ на резултратите:

1) блог/тема/последно мнение:

Селектираш табл ТЕМА, тбл МНЕНИЕ, тбл РЕГ юзър
WHERE "блог_ид"=стойността от масива(или ид-то на реда от тбл БЛОГ) AND ид-мнение="последно_менение" от табл МНЕНИЕ AND ид-РЕг="юзер_ид" от МНЕНИЕ


2) листваш цяла тема:
1 селект на табл ТЕМА, с който си вземаш ид-то й и заглавието да кажем
2 селект:
тбл МНЕНИЕ, тбл РЕГ юзър
WHERE "тема_номер"=ид-то на ТЕМА АНД ид-РЕг="юзер_ид" от МНЕНИЕ

Надявам се, че схвана :))
Пробвай, ако не се справиш, ще ти помогна със заявките.
Успех!
 
Боя са че схванах 1/4 от това което ми написа.
Утре на трезва глава ще го пробвам.
На мен ми се иска да ползвам две три страници за всичките блогове,нещо като ПХПбб форум.
 
Ще стане в 2-3 стр, но заявките ти ще са по 10 реда :)
Няма страшно, ще видиш - лесно е!
По-късно ще ти направя една проста схема, за да хванеш връзките.
 
sizif каза:
Ще стане в 2-3 стр, но заявките ти ще са по 10 реда :)
Няма страшно, ще видиш - лесно е!
Честно да си кажа малко се шашкам.Защо ли ? Защото трябва от няколко таблици да се извади информация.ЩЕ се пробвам все пак,пък като имам затруднения ще пишем тука.Не е въпроса дали ще са 1 или 100 страници,искам просто да не права за всеки блог отделно папка с файлове.Първото което за 1 месец ще ми се напълни и без това хоста,2 няма да смогна да го права ръчно.Затова ми се искаше така в няколко файла.
Утре ще се пробвам да го направа.
 
аз лично бих го направил така

таблица users с дадените в нея глупости, и когато даден потребител тръгне да създава блог, в едно поле в таблица users се бележи с 1-ца примерно, така ще се знае кой имат блог. ако се ползва cpanel мога да дам и идея при създаването как да се създава субдомейн :-)

след това, при самото създаване на блога, ще направя да се създава нова таближа от вида subdomane_blog :-) и всеки блог да си ползва отделна таблица, по-малко ще се товари сървъра :-) и няма да е голяма мешаница :-)

отделно, не е нужно за всеки потребител да се копират файловете :-) ето ти пример

папка
root/blog.php
root/pe6o/index.php
root/to6o/index.php

върно пак има файлове, но е само един индекс :-) които ще е с суич метода и ще тегли инфо от рута, и за да не е линка такa http://pe6o.site.com/index.php?page=blog прймерно може да се ползва мод рерайт и да стане http://pe6o.site.com/blog

а заявката за селект е лесна също взимаш текущия сървър
демек http://pe6o.site.com/blog

и става

Код:
$url='http://pe6o.site.com/blog';
$url = str_replace("http://", "", $url);
$url=explode(".",$url);
$table=$url[0]."_blog";

//и сега вече заявката е така

$query="SELECT * FROM $table"
 
@jooorooo - идеята ти е доста по-лесна и удобна.Ще ми трябва помощ за този Цпанел защото е отвратителена гади*a.
Само едно да питам неможели от
gosho.site.bg/.....
да взиме съответно името gosho и препраща към site.bg/blog/index.php?user=gosho
И в този индекс да се селектират нещата от по-горният пост на jooroo.
 
index каза:
@jooorooo - идеята ти е доста по-лесна и удобна.Ще ми трябва помощ за този Цпанел защото е отвратителена гади*a.
Само едно да питам неможели от
gosho.site.bg/.....
да взиме съответно името gosho и препраща към site.bg/blog/index.php?user=gosho
И в този индекс да се селектират нещата от по-горният пост на jooroo.

както го замисляш това site.bg/blog/index.php?user=gosho е много по лоша идея от това което ти казах за субдомейна :-) имам написан и готов скрипт който създава сундомейни в cpanel-а :-) и е желателно да ползваш мод релраите, не само от гледна точка оптимизация, а и от точка на удобство на потребител, замисли се, как ти е по лесно да изпишеш

site.bg/blog/index.php?user=gosho

или

gosho.site.bg/blog
 
jooorooo каза:
index каза:
@jooorooo - идеята ти е доста по-лесна и удобна.Ще ми трябва помощ за този Цпанел защото е отвратителена гади*a.
Само едно да питам неможели от
gosho.site.bg/.....
да взиме съответно името gosho и препраща към site.bg/blog/index.php?user=gosho
И в този индекс да се селектират нещата от по-горният пост на jooroo.

както го замисляш това site.bg/blog/index.php?user=gosho е много по лоша идея от това което ти казах за субдомейна :-) имам написан и готов скрипт който създава сундомейни в cpanel-а :-) и е желателно да ползваш мод релраите, не само от гледна точка оптимизация, а и от точка на удобство на потребител, замисли се, как ти е по лесно да изпишеш

site.bg/blog/index.php?user=gosho

или

gosho.site.bg/blog
Ами значи се предържаме към твоят вариант.
Сега писах на съпорта на хостинг конпанията защото съм допуснал грешка в попълването на даниите и хоста ми нее пуснат.
Интересно защо сами пратили паролите.
Ще можели да ми услужиш с този скрипт за поддомейните ?
 
разбира се :-) давам го :-)

дори сега ми доиде идеята, да се създава не само поддомеин, а може и поща с името на субдомейна :-) имам и такъв :-)
 

Back
Горе