Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Licznik komentarzy (PHP + mysql), problem
kimu
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 25.06.2007

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


Witam. Chciałbym zrobić licznik komentarzy który wyświetlał by się obok każdego dodanego tekstu. Czyli
obok każdego tekstu pojawiała by się odpowiednia do danego tekstu.

Puki co wygląda to tak (KLIK)

Gdzie każde "0" powinno być odpowiednią wartością odpowiadającą liczbie komentarzy danego tekstu. Tak
jednak nie jest.

Skrypt PHP w pliku "teksty.php" to:

  1. <?php
  2. $conn = mysql_connect("xxx","xxx","xxx");
  3. mysql_select_db("teksty");
  4. ?>
  5.  
  6. <?php
  7. $sql = 'SELECT * FROM `katalog`; ';
  8. $sqla = "SET CHARSET latin2";
  9. mysql_query($sqla);
  10. $sql = 'SELECT * FROM `katalog`; ';
  11. $wykonaj = mysql_query($sql);
  12. $sql3 = mysql_query("SELECT COUNT(*) as il_komentarzy FROM kom WHERE tek='".$_GET['id']."'");
  13. $row = mysql_fetch_array($sql3);
  14.  
  15.  
  16. while($wiersz = mysql_fetch_assoc($wykonaj)) {
  17. echo '<table border="0" width="100%">'.'<tr>'.'<td bgcolor="#758588">'.'<font size="2">'.$wiersz['nazwa'].'</font>'.'</td>'.'</tr>'.'</table><hr color="#758588" size=1 /><a href="wpis.php?id='.$wiersz['id'].'"></a>';
  18.  
  19. $sql1 = "SELECT * FROM `tekst` WHERE kat = '".$wiersz['id']."' ORDER BY id";
  20. $wykonaj1 = mysql_query($sql1);
  21.  
  22. while($wiersz1 = mysql_fetch_assoc($wykonaj1)) {
  23. echo '<table border="0" width="100%">'.'<tr>'.'<td bgcolor="#C1C9C9">'.'<font size="2">'.[b]$row['il_komentarzy'][/b].'- <a href="strona-teksty.php?id='.$wiersz1['id'].'">'.$wiersz1['tytul'].' </a>'.'</font>'.'</td>'.'</tr>'.'</table>';
  24. }
  25. echo '<br>';
  26. }
  27. mysql_close($conn);
  28. ?>


$sql3 = mysql_query("SELECT COUNT(*) as il_komentarzy FROM kom WHERE tek='".$_GET['id']."'");
$row = mysql_fetch_array($sql3);

$row['il_komentarzy']


Gdzie część pogrubiona skryptu odpowiada za wyświetlane zera.

Baza danych wygląda następująco:

Teksty:
* katalog
* kom
- id, imie, tresc, tek (id jest pojedyncze dla jednego komentarza, tek odpowiada przynależności do danego tekstu).
* tekst
- id, tytul, tekst, kat (id jest pjedyncze dla jednego tekstu i odpowiada wartości tek w komentarzach).


Czy ktoś może wie co musze zrobić aby liczba komentarzy była wyświetlana poprawnie?

Ten post edytował kimu 25.06.2007, 21:39:24
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Strzałek
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 384
Pomógł: 6
Dołączył: 11.09.2004
Skąd: Grodzisk Mazowiecki

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


Ja wtrącę swoje parę groszy.

Otóż takie liczenie komentarzy jest mało wydajne. Wyobraź sobie że na stronie głównej masz 10 newsów i do każdego wykonujesz zapytanie z COUNT'em żeby pokazać ile jest komentarzy. Masz 1 zapytanie + 10 + jeszcze jakieś inne. Nie fajnie, nie wspominając o tym że przy dużeeej ilości komentarzy COUNT nie jest błyskawicą (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Zdecydowanie lepszym rozwiązaniem jest trzymanie w kolumnie z newsami czy czymś innym ilości komentarzy.

Przy dodaniu i usuwaniu komentarza zrobić UPDATE, żeby licznik się zgadzał i gra gitara (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 18:30