Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
mam zamiar napisać własne forum:
1.Od czego zacząć?jakie bazy danych utworzyć i ile? 2.Korzystać z $_GET czy sesji? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 581 Pomógł: 0 Dołączył: 21.07.2003 Skąd: Jasło Ostrzeżenie: (0%)
|
1. Używać Mysql chyba że chcesz się meczyc na plikach, a od czego zaczonć to jakiś silnik który to napędza
2. Co masz na myśli mówiąc $_GET czy sessji przeciez to nie ma nic ze soba wspolnego! |
|
|
|
Post
#3
|
|
|
Administrator serwera Grupa: Przyjaciele php.pl Postów: 909 Pomógł: 0 Dołączył: 12.08.2003 Skąd: /var/www/wroclaw.php Ostrzeżenie: (0%)
|
Najlepiej zobacz w jaki sposób działają skrypty takie jak IPB, czy phpBB i na tym się bazuj...
|
|
|
|
Post
#4
|
|
|
TAO programowania Grupa: Zarejestrowani Postów: 340 Pomógł: 3 Dołączył: 25.03.2003 Skąd: ze słoika Ostrzeżenie: (30%)
|
Cytat(KRCreater) mam zamiar napisać własne forum: 1.Od czego zacząć?jakie bazy danych utworzyć i ile? 2.Korzystać z $_GET czy sesji? Brzmi to trochę jak pytanai osoby która z php ma kontakt od niedlugiego czasu i całkowity brak doświadczenia w wydajnej pracy nad większymy projektami, ale zakładając że tak nie jest przedstawię ci jak ja zasiadłem to pisania własnego forum (http://fgarden.e6.pl/forum/). Zacząłem od wybrania pomiędzy wydajnością a wielkości bazy danych. Jest to wybór zasadniczy ponieważ jeżeli zdecydujemy się na wielką bazę danych to będziemy wpisywać ilość postów, ilość tematów w danym forze, a co za tym idzie dośc sporą ilość danych. Z koleji na mniejszej wydajności (moje rozwązanie) wszystkie dane dynamiczne (ilość postów, ilość tematów w forze) pobieramy za każdym wywołaniem. Po dokonaniu wyboru zasiadamy do choćby notatnika i zapisujemy plik jako "dokumentacja.txt" i zaczynamy zapisywać tam wirtualne tabele bazy danych, na zasadzie Cytat(Puciek Forum Doc) fora(5 pól) id, nazwa, opis, pozycja, status id - Numer kontrolny fora nazwa - Etykietka fora opis - Opis fora pozycja - Numer kolejności fora status - 0-Wyłączone, 1-Włączone i dzięki temu podczas pisnaia dalszego oskryptu mogę bez łaczenia się z bazą danych odrazu sprawdzić jak wygląda dana tabela i jak się do niej odwołać. Potem następuje mozolne skryptowanie, ja skryptowałem "warstwowo". Znaczy to tyle że najpierw powstaje jądro, potem moduł wyświetlający layout, potem modół ładujacy system mieszkańców, logowania itd. Od kiedy forum będzie w miare funkcjonalne (możliwa rejestracja, logowanie, pisanie postów, zakładanie tematów) wypuszczamy je i ludzie dyskutują, zgłaszajac przy okazji błedy. Kiedy załatamy wskazane siadamy do kolejnych modółów i tak aż do ukończenia pracy. Nie ma tu za dużo konkretów ponieważ tu każdy musi zachowac indywidualnosc rozwiazań, ponieważ jeśli ma to działać jak inne fora to nie ma sensu tego pisać bo jak to mówi Dragossani "Po co wyważać otwarte drzwi ?". |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 848 Pomógł: 0 Dołączył: 7.07.2004 Skąd: Wrocław Ostrzeżenie: (0%)
|
Po pierwsze załóż bazę MySQL, a po drugie stwórz w niej tabelę z danymi, jakie ci potrzeba (zależy jakie to ma być forum), a po drugie: sesja i $_GET mało mają ze sobą wspólnego... powinieneś się raczej zapytać: $_GET czy $_POST... a tak na marginesie, to staraj się jak najczęściej używać $_POST... chyba, że się nie da. Wiesz... znałem kolesia, który próbował napisać "najlepsze" forum i login ustawił metodą $_GET... Szczerze odradzam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A tak nawiasem mówiąc do Puciek'a- nie gnój tak KRCreater'a, bo mu się odechce na tym forum pisać...
(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) Ten post edytował Vertical 9.09.2004, 15:11:44 |
|
|
|
Post
#6
|
|
|
TAO programowania Grupa: Zarejestrowani Postów: 340 Pomógł: 3 Dołączył: 25.03.2003 Skąd: ze słoika Ostrzeżenie: (30%)
|
Cytat(Vertical @ 2004-09-09 16:06:34) A tak nawiasem mówiąc do Puciek'a- nie gnój tak KRCreater'a, bo mu się odechce na tym forum pisać... Nie gnoje go tylko inforumuje że należy mierzyć siły na zamiary, a pisanie forum to zadanie wyższych lotów. |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%)
|
Ja tez jestem na wstepnym etapie pisania forum i tez nie wiem do konca jak to zrobic choc juz mam zrobione pewne moduly.
Pochwale sie jak w tej chwili wyglada moja baza danych i przy okazji poprosze o skomentowanie tego czy dobrze ja zaplanowalem. Forum ma byc dolaczone do istniejacej juz strony na ktorej istnieje juz baza danych z userami ktorzy maja juz okreslone rozne uprawnienia w dodatku w bazie z userami znajduja sie dwa wolne pola Integer ktore moge wykorzystac. Odpada wiec tworzenie tablicy z userami. Pozostale tablice zaplanowalem tak: TABLE forum ID nr - numer dzieki ktoremu bede mogl ustawic pozycje na stronie temat - glowny temat forum opis - krotki opis tematu status - tu ustale prawa kto bedzie mogl czytac i pisac na tym forum il_watkow - licznik (ile juz jest watkow w tym forum) il_odpowiedzi - licznik (ile jest odpowiedzi) TABLE watek ID ID_forum - powiazanie z tabela (forum) ID_users - powiazanie z tabela (users) temat - temat watku tworzony przez uzytkownika data - data utworzenia watku status - tu bede mogl np zablokowac watek il_odpowiedzi - licznik (ile jest odpowiedzi) il_wyswietlen - licznik (ile bylo wyswietlen) TABLE wypowiedz ID ID_watek - powiazanie z tabela (watek) ID_users - powiazanie z tabela (users) data - data dodania wypowiedzi tresc - no i tresc |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
yavaho zrobiłem podobnie do Ciebie tylko u mnie wszystko sie inaczej nazywa (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Nie mierze za wysoko bo z php jestem już trochę obeznany (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) hehe (wszystkiego nauczyłem się - można tak powiedzieć - na tym forum,a reszte wyczytałem w dokumentacji php. Wracając do tematu, stowrzyłem 3 tabele forum_dzialy,forum_topic,forum_odp ale mniejsza z tym.Już zrobiłem wszystko żeby mi wyświetlało - jest elegancko. Tylko mam mały problem, nie mam pomysłu jak zrobić dla każdego usera to aby pokazywała się ikonka przy topicu którego on jeszcze nie czytał, a jak przeczyta ( kliknie w link topciu ) to się zmieni na taką które będzie symbolizowała że już to widział. A jak pojawi sie odpowiedź w tym temacie to on skoczy na początek, górę danego działu i znów pokaze się ikonka. jak to zrobić ? To ze "skoczeniem" topicu na góre zrobie tak że poprostu posortuje bazę według daty i godziny. Ale jak zrobić te ikonki??zastosować ciastka hehe A drugi problem to chciałem aby przy dziale pokazała się data ostatniego topicu , nazwa użytkownika który utowrzył topic i temat Mam nadzieję że w tym mi pomożecie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam |
|
|
|
Post
#9
|
|
|
TAO programowania Grupa: Zarejestrowani Postów: 340 Pomógł: 3 Dołączył: 25.03.2003 Skąd: ze słoika Ostrzeżenie: (30%)
|
Wyświetlanie danych z ostatniego posta to poprostu zapytanie z order by data i limit 0,1. A potem wyświetlenie.
A co do postów to najlepiej zrobic coś na zasadzie Post Trackera w którym apisujemy przez kogo dany post został obejrzany. |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
że sam na to nie wpadłem.
post_tracker? hmmm ja chcę to zrobić za pomoca ciastek, chcę storzyć ciacho o id topicu np. 34732 i przy wyświetleniu topicu sprawdzi czy ciacho istnieje jeżeli nie to je tworzy. A przy wyświetlaniu listy topic'ów zadziala anlogicznie ;] Ale w sumie to będzie działać tylko raz jak kliknie to ten topic będzie uznany jako przeczytany ciastko się zrobi i kicha, bo ja ktoś odpowie to się nie pokaże ikona już że jest nowa wiadomość, ponieważ ciastko już będzie istniało. Więc jak by to zrobić hmmmmm (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif) Ten post edytował KRCreater 9.09.2004, 23:28:04 |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%)
|
Podczas wyswietlenia topicu nalezalo by storzyc ciacho lub oswiezyc juz istniejace i zapisac w nim liczbe ile odpowiedzi juz ma dany topic potem sprawdzac czy ta liczba wzrosla, albo zapisywac aktualny czas otwarcia topicu i potem porownac czy ostatnia odpowiedz w topicu ma pozniejszy czas.
Tylko nie wyobrazam sobie tego jak to bedzie dzialalo jak ktos dziennie otwiera kilkadziesiat topikow? Ilosc ciasteczek jest chyba ograniczona i nie kazdy klient moze miec wlaczone ciasteczka. A w moim przypadku jest tak ze serwer wogule nie wysyla ciasteczek do klientow! Mysle ze do tego trzeba by bylo wykorzystac baze danych. Puciek - co to jest Post Tracker? |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
No dobra nie zastosuje ciastke ze względu na to że niektórzy mają to wyłączone i przedewszystkim że to może dużo zajmować miejsca.
Więc w jaki sposób w bazie mysql mam to zrobić?hmmmmmm (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif) Proszę o jakieś sugestie jak mogę to zrobić w bazie mysql - nie stosując ciastek? Ten post edytował KRCreater 10.09.2004, 11:48:14 |
|
|
|
Post
#13
|
|
|
TAO programowania Grupa: Zarejestrowani Postów: 340 Pomógł: 3 Dołączył: 25.03.2003 Skąd: ze słoika Ostrzeżenie: (30%)
|
Cytat(yavaho @ 2004-09-10 01:26:14) Puciek - co to jest Post Tracker? Jest to tbela w ktorej zapisane jest id kazdego posta oraz lista uzytkownikow korzy je widzieli, co w pelni rozwiazuje problem z nowymi postami. Osobiscie sam mysle nad czyms nowym poniewaz to strasznie pozera baze danych. |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%)
|
Moim zdaniem nalezy zarejestrowac date i godzine wyswietlenia danego tematu przez konkretnego usera i porownac ja z data ostatniego posta w temacie. Jezeli data ostatniego posta jest pozniejsza od daty odwiedzin to znaczy ze nalezy wyswietlic ikonke nieprzeczytane.
A tak na marginesie. Zanim zaczniecie pisac skrypty dobrze sobie wszystko przemyslcie. Uwzglednijcie np wersje jezykowe, wersje layautu. Najlepiej podpatrzec rozwiazania z innych for. Natomiast co do pytania sesje czy GET to wcale nie jest ono bez sensu bo tak naprawde sprowadza sie do problemu przenoszenia identyfikatora sesji. W phpBB jest tak, ze jezeli z jakichs powodow automatyczne przekazywanie identyfikatora sesji (np poprzez ciasteczka) nie dziala to do kazdego adresu dolaczany jest identyfikator sesji. Dzieki temu sesje dzialaja w kazdej sytuacji bez wzgledu na ustawienia serwera czy indywidualne ustawinia przegladarek. |
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
A więc co zastosować ciastka czy Post Tracker?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
|
|
|
|
Post
#16
|
|
|
TAO programowania Grupa: Zarejestrowani Postów: 340 Pomógł: 3 Dołączył: 25.03.2003 Skąd: ze słoika Ostrzeżenie: (30%)
|
Zapytaj się jeszcze czy uzyć echo() czy print(), to wszystko zlaezy od ciebie.
|
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
nie rób ze mnie k#&%@! debila (IMG:http://forum.php.pl/style_emoticons/default/angrysmiley.gif)
Pytam bardziej doświadczonych. Może zrobimy ankiete ? ha? Chciałbym jakąś konkretną odpowiedź |
|
|
|
Post
#18
|
|
|
TAO programowania Grupa: Zarejestrowani Postów: 340 Pomógł: 3 Dołączył: 25.03.2003 Skąd: ze słoika Ostrzeżenie: (30%)
|
Nie klnie sie w miejscu publicznym.
A gwoli scislosci to tutaj zdania beda podzielone, bo kazdy zyje po sowjemu a jezeli oczekujesz ze ktos bedzie cie za reke rpowadzil podajac cale zalozenia to to nie bedzie twoje forum. SWOJE FORUM MUSISZ ROBIC SAM ! |
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
Sorry za przeklinanie,ale kurczę wydaje mi się,a jestem nawet skłonny powiedzieć, że jestem pewien,bo ludzie odwiedzający moje forum nie będą nawet wiedzieć jak wyłączyć ciastka.Więc zastosuje ciastka,a nie post tracker'a, ale powoli już sam nie wiem co było by bardziej słuszne...
Jeżeli będa dochodziłu do mnie głosy że ludzie mają wyłączone ciastka to to zmienia poprostu pozdro stary ps. mam wypite troche więc moge krzywo pisać (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) :żubr: haha ps2. jak wyciągnąć z ciastka value (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) bo zapomniałem $_COOKIE['i jak dalej'] hehe Ten post edytował KRCreater 11.09.2004, 22:26:46 |
|
|
|
Post
#20
|
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%)
|
|
|
|
|
Post
#21
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
hehehehehehe kurcze testuje,prubuje,testuje i nie mogę napisać tego skryptu do pokazywania NOWEJ nie oglądanej odopowiedzi/nowego postu i STAREJ oglądanej odopowiedzi/postu ;/
|
|
|
|
Post
#22
|
|
|
TAO programowania Grupa: Zarejestrowani Postów: 340 Pomógł: 3 Dołączył: 25.03.2003 Skąd: ze słoika Ostrzeżenie: (30%)
|
PROGRAMISTO, PIŁEŚ, NIE PISZ. NIE PIŁEŚ, WYPIJ !
|
|
|
|
Post
#23
|
|
|
Grupa: Zarejestrowani Postów: 210 Pomógł: 0 Dołączył: 31.01.2004 Skąd: Kraków Ostrzeżenie: (0%)
|
Wiem, że jesteś ambitny ale ja polecam gotowe fora. One są pięknie dopracowane i nigdy nie będziesz miał niczego lepszego (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
|
|
|
|
Post
#24
|
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 18.09.2002 Skąd: Bochnia Ostrzeżenie: (0%)
|
Hej mam pytanie do yavaho. Ale ktoś inny też może dopowiedzieć, jeśli się z nim zrozumiał. Ja też nie narzekam na nadmiar doświadczenia w większych projektach (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Chodzi mi o Twój pierwszy post w tym temacie. Zamierzasz wpisywać wszystkie tematy do tabeli watek niezależnie od tego do jakiego działu forum należą? Bo rozumiem że poszczególne działy będą znajdowały się w tabeli forum. Nie lepiej dla każdego działu zrobić tabelkę? Przez słowo "dział" rozumiem to co na tym forum jest: php, php Skrypty, Po stronie przeglądarki, XML, itd.
Pozdrawiam |
|
|
|
Post
#25
|
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%)
|
Cytat(Misiek @ 2004-09-12 21:14:06) Zamierzasz wpisywać wszystkie tematy do tabeli watek niezależnie od tego do jakiego działu forum należą? Tak I kazdy wątek bedzie powiazany z tabelą "forum" z odpowiednim dzialem forum. Tak samo jak wszystkie wypowiedzi z calego forum beda w jednej tabeli i beda powiazane z tabela "watek" z jednym konkretnym watkiem. No chyba na tym polega sens stosowania baz danych. Nie bede tworzyl nowej tabeli jezeli powstanie nowy dzial na forum. |
|
|
|
Post
#26
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
mam pytanie, nie mam pojęcia jak wyciągnąć kolejne ID z danej tabeli...
Ale nie chcę tego robić wyciągając największe ID z działu i dodając do niego 1 z oczywistego powodu. Jeżeli mam np. ID 34,35,36,37 i usunę ID 36,37 to jak utworzę nowy wiersz w tabeli to nie będzie to kontynuacja 35 czyli 36 tylko 38... Więc jak wyciągnąć z tabeli KOLEJNE ID (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Jak wyciągnąć z bazy Next Autoindex (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ten post edytował KRCreater 13.09.2004, 00:19:38 |
|
|
|
Post
#27
|
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 1 Dołączył: 19.09.2003 Skąd: Lublin Ostrzeżenie: (0%)
|
|
|
|
|
Post
#28
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
mam kolejne pytanie dotyczące tego co akurat piszę (forum):
Piszę np. wypowiedź w textarea i kiedy w textarea zrobie enter to chciałbym - jak wyświetlę tą wypowiedź - żeby tam gdzie był w texarea enter wyświetliło się <br> Jak to zrobić? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) |
|
|
|
Post
#29
|
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 1 Dołączył: 19.09.2003 Skąd: Lublin Ostrzeżenie: (0%)
|
Na php.pl jest artykuł o znakach nowej linii. Przeczytaj. Powinien Ci pomóc.
|
|
|
|
Post
#30
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
sorry już zapomniałęm o tej funkcji (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) -> nl2br();
|
|
|
|
Post
#31
|
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%)
|
Ja bym proponował poszuakć artykułów na temat: mysqla, sesji, dobrego systemu autoryzacji oraz przejrzeć przynajmniej tabele mysql ibfu ablo phpBB
Co do nowych wiadomosci. Pisze teraz cos takiego do komntrzy(masz farta co do czasu (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) UWAGA: kod który zaraz zobaczysz jest skopiowany żywcem z mojej klasy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) - dozwolone od lat 18 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
$this -> USR_id = twój id $this -> prfix = prefix do bazy I tłumaczenie... najpierw pobieram date ostatniej wizyty. Później komentarze które zostały dodane po mojej ostatniej wizycie wrzucam do tabelki unread. I teraz mam swobode. Ponieważ baza nie jest zaśmiecana informacjami o userach którzy nie odwiedzają strony (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Tyle Ten post edytował SHiP 14.09.2004, 15:02:06 |
|
|
|
Post
#32
|
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%)
|
Cytat(SHiP @ 2004-09-14 15:43:49) I tłumaczenie... najpierw pobieram date ostatniej wizyty. Później komentarze które zostały dodane po mojej ostatniej wizycie wrzucam do tabelki unread. SHiP wytlumacz mi jeszcze raz to tlumaczenie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) "...po mojej ostatniej wizycie..." czyli gdzie? Wizycie na glownej stronie forum? Czy wizycie na konkretnym wątku i przeczytanie w nim wiadomosci? |
|
|
|
Post
#33
|
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%)
|
To jest data sotatniej wizyty na byle której podstronie forum. Po prostu zawsze wykonuje zapytanie.
Po prosty spradzam czy podczaj mojej nieobecności doszły jakieś posty(w moim przypadku komentarze) na strone. Jeśli tak to je zapisuje to do bazy. Coś jeszcze wytłumaczyc?? (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) |
|
|
|
Post
#34
|
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%)
|
Aaa teraz rozumiem. Wyswietlasz poprostu nowe wiadomosci tak jak jest tu na forum [Pokaz nowe posty]
Myslalem ze masz jakis pomysl jak wyswietlic watki, ktorych sie jeszcze nie otwieralo lub watki w ktorych doszly nowe posty od ostatniego otwarcia tego watka. To nad czym pracuje KRCreater a mnie tez to interesuje. Bo sama wizyta na forum nie oznacza ze sie przeczytalo wszystkie nowe posty. |
|
|
|
Post
#35
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
kurde mam problem z takim szczegółem ;/
Ogólnie chodzi o to że jak w tabeli forum_nowe_posty nie ma wiersza z informacją że dany czytał dany topic to robię INSERT INTO i dodaję wiersz a jak widział to robie UPDATE i update'uje datę i godzinę jednak nieważne czy jest czy nie ma tego wiersza to i tak cały czas robi się INSERT INTO (IMG:http://forum.php.pl/style_emoticons/default/mad.gif) Dlaczego? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) |
|
|
|
Post
#36
|
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%)
|
Nie zrozumiałeś mnie
Teraz przy wyświetlaniu np listy topiców. Sprawdzam czy jest id tego topica w tabeli unread jeśli tak to daje inną grafikę.. Później podczas wyświetlania topica tworze zapytanie które usuwa informacje o tym topicu... Teraz rozumiesz?? :] Jeżeli nie to ci napisze cały skrypt (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Moze wtedy... Ten post edytował SHiP 15.09.2004, 15:58:28 |
|
|
|
Post
#37
|
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%)
|
Chyba zaczynam rozumiec (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Tylko czy tabela unread nie rozrosnie sie nadmiernie? Gdyby kazdy uzytkownik czytal wszystkie watki wtedy ilosc wierszy w tabeli bedzie iloczynem uzytkownikow i watkow. |
|
|
|
Post
#38
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
ja bym usuwał z tej tabeli starsze wpisy niż tydzień może dwa
|
|
|
|
Post
#39
|
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%)
|
Heh nie ma tak dobrze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) nowe wpisy są dodawane wtedy gdy użytkownicy odwiedzą stronę. Jeśli ktoś nie wchodzi przez rok (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) to baza nie jest zaśmiecana informacjami o tym że nie czytał tych wątków. Po za tym jest opcja "oznacz wszytkie jako przeczytane".
Cytat Gdyby kazdy uzytkownik czytal wszystkie watki wtedy ilosc wierszy w tabeli bedzie iloczynem uzytkownikow i watkow. Jest na odwrót do bazy sa zapisywane te watki które nie sa przeczytane... Cytat ja bym usuwał z tej tabeli starsze wpisy niż tydzień może dwa Pomysl dobry ale tydzień/dwa to za mało... |
|
|
|
Post
#40
|
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%)
|
Cytat(SHiP @ 2004-09-16 15:04:37) do bazy sa zapisywane te watki które nie sa przeczytane... Dobry pomysl. Teraz chyba doloze sobie taki modol do mojego forum (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Z bazy mozna by usuwac automatycznie (a raczej trzeba) te pozycje, ktore sa powiazane z userami, ktorzy sie wypisuja z "klubu" lub z watkami, ktore zostana skasowane. |
|
|
|
Post
#41
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
wracam do tego tematu - swoje forum juz dość rozwinąłem , a deser zostawiłem na koniec - czyli wyświetlanie nowych postów ...
Jak miała by wyglądać ta tabela w mysql'u? ja robię tak:
Ale zastanawiam się nad robienie na odwrót, ponieważ teraz jak ktoś przeczyta post'a to usunie się z bazy zapis, że ktoś go czytał. Jednak mniej miejsca chyba zajmie jak będe zapisywał to że ktoś przeczytał. ale z drugiej strony jak zrobie opcje "odznacz wszystkie jako przeczytane" to będę musiał zapisać wszystkie topici, a wygodniej było by je usunąć... *** Mam kolejny pomysł co to post_tracker'a . Mianowicie można dodać do tabeli z topicami (u mnie forum_topic) pole ost_data_odp oraz czek_new_post i porównać ost_data_odp z aktualną datą jeśli jest np. różnica większa niż 2 tygodnie wtedy ustawić w czek_new_post jako przeczytane (np. value=1) i wtedy opróżnić tabele post_tracker (u mnie new_post) a jak pojawi się wypowiedź nowsza wtedy uaktualnić tabele post_tracker. |
|
|
|
Post
#42
|
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
1. Przy każdym wyświetleniu strony dodajesz do pewnej tablicy ID wszystkich nieprzeczytanych postów.
2. Serializujesz tablice w ciastku u odwiedzajacego. 3. Przy wyswietleniu jakiegos watku/posta usuwasz odpowiednie ID z tablicy i nadpisujesz ciastko. 4. "Zaznacz wszystkie jako przeczytane" czysci tablice. Przy pierwszym wejsciu na stronę user dostanie WSZYSTKIE istniejace posty na stronie, co sie zgadza, bo nic jeszcze nie przeczytał. Nice&Softly. |
|
|
|
Post
#43
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
tylko cholera tak jak ktoś powiedział w tym topicu, że tabela new_post będzie zawierała iloczyn topiców i userów ;/ a to będzie dużo zajmowało...szkoda (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)
Jeszcze mam jeden pomysł , aby nowe posty to były tylko ostatnie 20 ich...bo po co ma być zaśmiecana baza wszystkimi. A oczywiście 20 z każdego działu Ten post edytował KRCreater 4.10.2004, 19:59:24 |
|
|
|
Post
#44
|
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%)
|
Cytat(KRCreater @ 2004-10-04 20:39:04) Jeszcze mam jeden pomysł , aby nowe posty to były tylko ostatnie 20 ich...bo po co ma być zaśmiecana baza wszystkimi. A oczywiście 20 z każdego działu Masz na mysli posty? czy topiki? Ja myslalem zrobic tabele w ktorej powiaze tylko userow z danymi topicami (zadnych informacji o postach bym nie zapisywal - za duzo by tego bylo!). I wtedy jezeli w bazie danych zapiszesz date odwiedzenia danego topicu to przy ponownym wejsciu usera na strone bedzie wiadome ktore posty nie przeczytal w danym topicu - te z pozniejsza data. Zakladajac oczywiscie ze gdy user otwiera dany topic, to w tym momencie wszystkie posty ktore tam sa beda oznaczone jako przeczytane. |
|
|
|
Post
#45
|
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 24.09.2003 Skąd: Giżycko / Wrocław Ostrzeżenie: (0%)
|
http://gizycko.one.pl/ - moje forum.
Pisałem je długo, w sumie (z długimi przerwami) będzie już ponad rok. Po drodze pojawiało się mnóstwo problemów, ale dzięki nim lepiej poznałem php i MySQL. Pozdrawiam i życzę pomyślności w dobrnięciu do celu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#46
|
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
Cytat(KRCreater @ 2004-10-04 20:39:04) tylko cholera tak jak ktoś powiedział w tym topicu, że tabela new_post będzie zawierała iloczyn topiców i userów ;/ a to będzie dużo zajmowało...szkoda (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) Jeszcze mam jeden pomysł , aby nowe posty to były tylko ostatnie 20 ich...bo po co ma być zaśmiecana baza wszystkimi. A oczywiście 20 z każdego działu A kto mówi o iloczynie "user * nowe_posty" ? Czy trzeba dac gotowca, żeby wyjaśnić prosty algorytm?
Jednym słowem: 1. Czytamy cookie usera 2. Modyfikujemy tablice dodajac i czyszcząc odpowiednie wartości 3. Wyświetlamy stronę dodatkowo modyfikując tabelę 4. Zapisujemy cookie 5. TheEnd Ja widac na załączonym obrazku, każdy user ma właśna tablicę. Aby zapewnic "pezenościopść usera, możemy jego $_COOKIE['Unreaded'] serializować w bazie w tabeli zaraz przy jego profilu i jesli nie ma ciastka, to patrzeć, czy taka serializacja jest. Jeśłi nie ma ani tego, ani tego, to mamy po porostu nowego usera. Jeśli okaże się, że ilość danych w ciastku przekroczy magioczne 4 kilobajty, $Unreaded zapisujemy tylko w bazie. Jeszcze jakieś pytania? |
|
|
|
Post
#47
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
A jeśli ktoś ma wyłączone ciastka ? Na ciastkach mógł bym to zrobić ale ja zrobiłem post_tracer'a , który będzie sporo zajmował ale za przyjemność trzeba płacić.
|
|
|
|
Post
#48
|
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
No pozostajesz przy samej bazie. Ale nie zaznaczasz tego co kto przeczytal, tylko czego nie przeczytał według tego, co powiedziałem wyżej.
Każdy user ma pole TEXT przy swoim profilu, gdzie pchasz zserializowana tablicę ID nieprzeczytanych. |
|
|
|
Post
#49
|
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 27.08.2004 Ostrzeżenie: (0%)
|
Problem można rozwiąząc beż użycia cookies, bez tabel z przeczytanymi/nieprzeczytanymi postami.
Wystarczy w tabeli z użytkownikami dodać 1 kolumnę: data_ostatniego_logowania (najlepiej timestamp) i przy każdym poście/temacie dodać (o ile nie ma)kolumnę data_dodania. i w tej chwili wszystko już mamy, nie potrzeba nam żadnych COOKIES, dodatkowych tablic, ani nic. Aby uzyskać nieprzeczytane posty wystarczy wybrać z bazy te, które mają świeższą datę od daty ostatniego_logowania usera wchodzącego na stronę. |
|
|
|
Post
#50
|
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%)
|
Data ostatniego logowania nie gwarantuje ze uzytkownik wogule coś czytał, a zawlaszcza ze przeczytal wszystkie posty - bo chyba tylko tak by to dzialalo.
|
|
|
|
Post
#51
|
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 27.08.2004 Ostrzeżenie: (0%)
|
racja! ja proponowałem rozwązanie "Zobacz posty od ostatniej wizyty". Tak to jest rozwiązane w phpBB
|
|
|
|
Post
#52
|
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
I jest to bardzo ułomne.
Moje rozwiązanie stwarza pewna nadmiarowość danych jednak zapewnie w 100%, że jeśli użytkownik czegoś nie cztał, to zawsze to będzie miał oznaczone jako nieczytane, chyba, ze świadomą akcją spodowuje "odznaczenie". |
|
|
|
Post
#53
|
|
|
Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%)
|
Cytat(misterLu @ 2004-10-05 18:50:45) Problem można rozwiąząc beż użycia cookies, bez tabel z przeczytanymi/nieprzeczytanymi postami. Wystarczy w tabeli z użytkownikami dodać 1 kolumnę: data_ostatniego_logowania (najlepiej timestamp) i przy każdym poście/temacie dodać (o ile nie ma)kolumnę data_dodania. i w tej chwili wszystko już mamy, nie potrzeba nam żadnych COOKIES, dodatkowych tablic, ani nic. Aby uzyskać nieprzeczytane posty wystarczy wybrać z bazy te, które mają świeższą datę od daty ostatniego_logowania usera wchodzącego na stronę. pisząc swoje forum tak to na początku rozwiązałem. minusy: Gdy user sam napisze posta, pokazuje mu ze go nie czytal. W zaleznosci od tego kiedy ustawiasz date osattniego logowania moga wyniknac rozne anomalie ;] |
|
|
|
Post
#54
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
Moje forum mieści się w jednym pliku index.php to dobrze czy źle (nic nie includuje poza konfiguracją)
Czy stało by się bardziej wydajne jeśli podzielił bym skrypt na części np. ODPOWIEDZ / NOWY TEMAT / USUN POST / ZAMKNIJ POST cte. (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?\ *** Forum skończyłem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ))))))))) Teraz je upiększam :] Jak skończę moją stronę to wam pokażę moje dzieło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ale odpowiedzcie mi na pytanie powyżej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pozdrawiam *** aktualnie pracuję nad tym: Cytat Jeszcze mam jeden pomysł , aby nowe topic'i to były tylko ostatnie 20 ich...bo po co ma być zaśmiecana baza wszystkimi. A oczywiście 20 albo 10 z każdego działu. Jeszcze nie wiem ile wybrać (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Ten post edytował KRCreater 6.10.2004, 01:42:03 |
|
|
|
Post
#55
|
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
Napisałeś forum dyskusyjne na jednym pliku?
To ja powiem tak: Cholernie źle. - Polecam za pół roku wprowadzić do niego modyfikację. - nie masz skór - nie masz wersji językowych - masz bałagan. Czy kod będzie do wglądu? |
|
|
|
Post
#56
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Poznań Ostrzeżenie: (10%)
|
Nie potrzebuje wersji językowych, a skórę dostosowałem do mojej strony.
Tylko dopracuje forum i pokaże wam skrypt. *** Oto jak rozwiązałem funkcję która będzie mi pokazywać tylko 10 nowych wiadomości, a resztę wpisów usunię z bazy (może to zagmatwane, ale kod wszystko wyjaśni):
Działa elegancko!!! Ten post edytował KRCreater 8.10.2004, 23:52:36 |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 06:08 |