Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> blog -> komentowanie postów, kilka pytań
Apo
post 16.01.2006, 19:39:25
Post #1





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

Ostrzeżenie: (0%)
-----


Witam
Pisze właśnie swojego bloga w php.
Dziala na mysql i mam odnośnie niego kilka pytań.
Kiedy dodaje notke to dodaje mi sie wpis do bazy.

|id|data|wpis|wpis_dlugi|

No i teraz chciałem to tych notek dodać komentarze.
Ale nie wiem jak to rozwiązać. Czy robić nową tabele i dodawać komentarze w ten sposób:

|id|id_notki|autor|wpis|data|ip

No i potem przy wyświetlaniu konkretnej notki wyszukiwac odpowiednie komentarze i je wyświetlać.
Prosze o wasze sugestie oraz co będzie najwydajniejsze.
Go to the top of the page
+Quote Post
strife
post 16.01.2006, 19:42:02
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Rozwiązanie numer dwa jest najlepsze, czyli stworzyć kolejną tabelę z komentarzami. Zobacz jak to wygląda w Wordpress'ie. winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
Ociu
post 16.01.2006, 20:10:30
Post #3





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Pierwsze jest dobre, gdy dodasz tylko jeden koment, a co jeśli będzie ich więcej ?
Go to the top of the page
+Quote Post
Apo
post 16.01.2006, 20:40:34
Post #4





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

Ostrzeżenie: (0%)
-----


Cytat
Pierwsze jest dobre, gdy dodasz tylko jeden koment, a co jeśli będzie ich więcej ?

No właśnie też sie tak zastanawiałem tongue.gif Mam jeszcze pytanie ale troche offtopic jak to zapisać krucej:
"SELECT id, tytul, wpis FROM posty WHERE id LIKE '%$search%' OR itytul LIKE '%$search%' OR wpis LIKE '%$search%'";
(chce pozbyc sie tych or)
Go to the top of the page
+Quote Post
ave
post 16.01.2006, 22:55:55
Post #5





Grupa: Zarejestrowani
Postów: 117
Pomógł: 2
Dołączył: 29.01.2004
Skąd: Rz-ów

Ostrzeżenie: (0%)
-----


ja proponuje Ci jeszcze pole ilosc_komentarzy w tabeli z notkami, wtedy niebedziesz zliczal co wywowalenie storny glownej ilosci komentow.
Go to the top of the page
+Quote Post
bigZbig
post 17.01.2006, 09:47:25
Post #6





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Mozesz tez podejsc do tego korzystajac z koncepcji drzewa. Czym sie rozni twoj wpis od komentarzy? Jedynie autorstwem i tym ze komentarze sa podrzedne wzgledem twoich wpisow. Zatem tabele z notkami wystaczy wzbogacic o dwa pola

|id|data|wpis|wpis_dlugi|autor|id_notatki|

Zapytanie wyswietlajace notatki bedzie wygladalo tak:
  1. <?php
  2.  
  3. // Zakladamy ze wszystkie notatki dla pola id_notatki maja wartosc 0 (nalezy unikac jesli to mozliwe wartosci null w bazach danych i ustawiac war
    tosci domyslne)
  4. $query = 'SELECT id, data, wpis, wpis_dlugi, autor FROM Notatki WHERE id_notatki=0';
  5.  
  6. ?>


Zapytanie wyswietlajace komentarze do notatki o przykladowym id = 57:

  1. <?php
  2.  
  3. $query = 'SELECT id, data, wpis, wpis_dlugi, autor FROM Notatki WHERE id_notatki=57';
  4.  
  5. ?>


Zapytanie zliczajace komentarze dla notatki o przykladowym id = 57:
  1. <?php
  2.  
  3. $query = 'SELECT count(*) as liczba_komentarzy FROM Notatki WHERE id_notatki=57';
  4.  
  5. ?>


Zaleta tego rozwiazania jest to, ze mozna zastosowac te same formularze do edycji notatek i komentarzy.


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
Ociu
post 17.01.2006, 14:32:59
Post #7





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Czytałem kiedyś blog Anakina. Jadąc na MySQL, możesz skorzystać z takiego czegoś:
  1. SELECT SQL_CALC_FOUND_ROWS *
  2. FROM tabela ORDER BY pole LIMIT 10
  3. SELECT FOUND_ROWS()


polecam http://anakin.us/blog/obliczanie-ilosci-wierszy/#comments

pozdrawiam
Go to the top of the page
+Quote Post
Athlan
post 17.01.2006, 18:17:59
Post #8





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Ja bym to zrobił tak, że przy wyświetlaniu komentarzy zaliczamy waruneczek WHERE id='.$array['numer_notki'].', no i problem rozwiązane...

Jak na mnie to banał, rusz głową.

Pozr. dry.gif

Ten post edytował Athlan 17.01.2006, 18:18:22


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
Ociu
post 17.01.2006, 19:21:28
Post #9





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Można to zrobić tak:
  1. <?php
  2. function getNotes() {
  3. $sql = mysql_query("SELECT * FROM notes");
  4. while($row = mysql_fetch_array($sql)) {
  5. # wyswietlanie etc.
  6. getComments($row['id']);
  7. }
  8. }
  9.  
  10. function getComments($note_id) {
  11. # tu sprawdzanie czy arg. jest poprawny
  12. $sql = mysql_query("SELECT * FROM comments WHERE note_id=". $note_id ."");
  13. while($row = mysql_fetch_array($sql)) { /* tu cale te wyswietlanie */ }
  14. }
  15. ?>
Go to the top of the page
+Quote Post
Apo
post 17.01.2006, 19:52:08
Post #10





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

Ostrzeżenie: (0%)
-----


Cytat
Ja bym to zrobił tak, że przy wyświetlaniu komentarzy zaliczamy waruneczek WHERE id='.$array['numer_notki'].', no i problem rozwiązane...

Jak na mnie to banał, rusz głową.

To ty rusz głową i przeczytaj posty!

Ale już problem rozwiązałem. Wszystko jest w jednej tabeli.
No i jest tam kilka dodatkowych pól jak ip i id_newsa.
No i teraz gdy zostanie dodana zwykła notka to id_newsa = costam a gdy jest to komentarz to id_newsa = 5 (<---id danej notki)
No i przy wyświetlaniu komentów daje WHERE id_newsa='.$_GET['nr'];
dzieki za sugestie

Ten post edytował Apo 17.01.2006, 19:52:58
Go to the top of the page
+Quote Post
bigZbig
post 17.01.2006, 20:07:02
Post #11





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

Ostrzeżenie: (0%)
-----


@Ociu - a propos Twojego rozwiazania dotyczacego liczenia komentarzy - poczytaj temat while i SELECT COOUNT(*)


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 18:45