![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
Mam dwa nurtujace mnie pytania.
Czy opłaca sie robić klasy dla komantarzy czy zrobic zwykłą funckje z możliwości includowania do roznych miejsc. Taka funkcja działała by prawie jak klasa ( :?: chyba :?: ). A jesli na klasach zrobic taki system komantarzy to jak go zrobić :?: nie chodzi mi o podanie gotowego skryptu, tylko o rozwiazanie teoretyczne, czy nowym obiektem ma by komantarz :?: czy moze wszystkie komantarze :?: -------------------- Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota Zarządzaj swoim budżetem domowym |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Klasa komentarzy tonie jest zły pomysł. Pamiętaj, że taka klasa może miec metody:
- GetOne - GetAll - Write - Modify - Remowe - ... -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
czyli mam rozumiec, ze moge robic mniejwiecej cos takiego?
[php:1:0c7f170095]<?php $koment = new komantarze(); //jakieklolwiek odwolywanie sie do komentarzy $koment-> GetAll($cat, $id); //odwolanie sie do kategorii i id dokumentu ?>[/php:1:0c7f170095] czyli jesli bede chcial dodac, usunac, wyswietlic komantarze to tworze obiekt, a pozniej korzystam z wybranej metody? Staram sie nauczyc klas wiec zaczynam od najprostrzych rzeczy. -------------------- Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota Zarządzaj swoim budżetem domowym |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Mając w bazie tabelę:
Comments: - ID // id komentarza - DocID // id komentowanego dokumentu - Body // Nie musisz się odwoływac do kategorii. Podajesz tylko ID Komentowanego dokumentu i powinienes dostac tabele komentarzy. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobil tak:
Comment: - id - sub_id - id "tekstui", ktory komentujemy - date - topic - author - content - Remove() - usuwa pole z komentarzem w bazie oraz sam obiekt - Update() - po zmianie wlasciwosci klasy uruchamiajac update uaktualniamy pola w bazie Comments: - GetAll() - zwraca tablive z obiektami comment - RemoveAll() - usuwa wszystkie komentarze - GetById( id ) - pobiera komentarz o okresloym id z bazy i zwraca jego obiekt - GetBySubId( sub_id ) - pobiera komentarze do danego sub_id hmmm narazie tyle... podczas pisania pewnie jeszce cos dojdzie. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
To był tylko przykład, a pozatym kategoria u mnie w rozumieniu co komentujemy, newsy,obraz w galerii, artykuly lub cokolwiek innego, a id w tym momencie rozroznia ktory obraz/news/artykul. Nie wiem czy myslelismy w tych samych "kategoriach
![]() -------------------- Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota Zarządzaj swoim budżetem domowym |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Jako, ze moja propozycja przeszla niezauwazona oto jej implementacja:
Wynik powyzszego przykladu: Cytat ---- Lista komentarzy: 1 1 1073938210 Temat1 Seth 42 Tresc komentarza 1 ---- koniec listy ---- Lista komentarzy: 1 1 1073938210 Temat1 Seth 42 Tresc komentarza 1 2 1 1073938210 Temat2 Seth 42 Tresc komentarza ---- koniec listy ---- Lista komentarzy: 1 1 1073938210 Temat1 Seth 42 zmieniona tresc 2 1 1073938210 Temat2 Seth 42 Tresc komentarza ---- koniec listy Edit: mozna by jeszcze pokusic sie o min. dodawanie komenatarza przez przekazanie obiektu komentarza do listy i tam dopiero wykonanie Insert'a oraz uaktualnienie lsty bez potrzeby Refresha. |
|
|
![]()
Post
#8
|
|
![]() Administrator planeta/IRC Grupa: Przyjaciele php.pl Postów: 385 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Zabrze Ostrzeżenie: (0%) ![]() ![]() |
@Seth: widziałem że ludzie beda troche walczyć o punkty, ale żeby az takie gigantyczne gotowce wklejać?
![]() Oczywiście żartuje, przykład jest bardzo dobry, chętnie sam przyznałbym Ci za niego punkt, lecz nie ja rządze w tym wątku ![]() Ps. Mały bug na lini 193, powinno być chyba unset( $this->list ); ![]() -------------------- "Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
scanerowi dalem punkta za naprowadzenie mnie na odpowiednia droge, ale teraz seth jak najbardziej zasluguje. Przejze jego propozycje, ale nie skozystam, chce wkocu sam napisac jakas klase :]
-------------------- Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota Zarządzaj swoim budżetem domowym |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 6.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Hmm.
`id` mediumint(8) NOT NULL AUTO_INCREMENT, `docId` mediumint(8) NOT null, Mam tak samo w komentarzach. Wszystko bylo ok do momentu kiedy w docId wpisywalem id komentowanego newsa. Ale jak do komentarzy doszly artykuly i download... Teraz Zaczal robic sie 'balagan'. Bo dany artykul i news moze miec taki sam numer Id. Macie pomysl jak to rozwiazac? |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Musisz newsy i artykuły wsadzić w jedną tabelę. NIech to będzie tablica Documents. Dajesz w niej jedno pole "DocTypeID" i tworzysz nową tabelę-słownik "DocumentTypes" - tam masz tylko:
"ID" INT "Type" CHAR(250) Dzięki tem,u możesz z newsa zrobic artykuł, czy z artykułu download tylko poprtzez zmianę DocTypeID w tabeli Documents. -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 21.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Ja mam chyba troszkę bardziej elastyczne rozwiązanie powtarzających się id.
Zrobiłem relacje wiele-do-wiele (nie bezpśrednie) rozbita na dwie table: jedna tabela to komentarze, w której przechowuje id_kom, id_kom_el, id_kom_kat, reszta_danych.... czyli mam unikalny id komentarza, id elementu który komentuję (wymusza to zeby cokolwiek komentujesz mialo swoje inikalne id - kazdy art, plik, screen) oraz id kategorii w której znajduje się komentowany element. Druga tabela to spis kategori (id_kat, nazwa, ew_pozostale_dane), które chce opddać komentowaniu. Teraz dodatkowo jezeli któraś z wartości przechowywanych w spisie kategori jest dla niej charakterystyczna to można zrobić klasę definiującą wystąpenie komentarzy. W tym momencie wystarczy do tabeli spisu kategori dorzucić ten charakterystyczny identyfikator kategori a możliwość komentowania pojawi się praktycznie sama. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 18:57 |