Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Smarty]Pobieranie ilosci rekordow dla jednego rekordu
Keenic
post
Post #1





Grupa: Zarejestrowani
Postów: 64
Pomógł: 2
Dołączył: 13.07.2007
Skąd: Poznań

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


Napisalem w PHP kod do sprawdania ilosci komentarzy dla danego newsa. Teraz chcialbym to przezucic na Smarty i nie wiem jak.

pobieranie ilosci
  1. <?php
  2. $newsy = array();
  3. $sql = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT ".$styl1['newsy']."");
  4. while($row = mysql_fetch_array($sql)){
  5. $ile = mysql_query("SELECT * FROM komentarze WHERE id ='".$row['id']."' and co ='n'");
  6. $i = mysql_num_rows($ile);
  7. $newsy[] = $row;
  8. $komenty[] = $i;
  9. }
  10. ?>


wyswietlanie ilosci
  1. {foreach item=news from=$newsy}
  2. <div class="news-tytul"><a href="index.php?wiecej={$news.id}">{$news.tytul}</a></div>
  3. <div class="news-tresc">{$news.wstep}</div>
  4. <div class="news-stopka">{$u} | {$news.czas} {$news.czas1} | Komentarzy: {section name=k loop=$komenty}{$komenty[k]}{/section}</div>
  5. {/foreach}


Co prawda wyswietlaja mi sie ilosci komentarzy, ale przy kazdym newsie pokazuje mi sie wynik wszystkich (nie lacznie, jedno obok drugiego)
I teraz moje pytanie. Jak sprawic aby obok jednego newsa wyswietlala sie tylko ta wartosc, ktora wskazuje ilosc komentarzy.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
PiotrLegnica
post
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 6.07.2005
Skąd: Legnica

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


Na przykład (z pamięci, może nie działać od razu):
  1. <?php
  2. $sql = mysql_query('SELECT n.*, COUNT(DISTINCT k.id) AS iloscKomentarzy
  3. FROM news n 
  4. LEFT JOIN komentarze k ON (k.id = n.id AND k.co = 'n'
  5. GROUP BY n.id
  6. ORDER BY n.id
  7. DESC LIMIT '.(int)$styl1['newsy']) or exit(mysql_error());
  8. while (($row = mysql_fetch_array($sql)) !== NULL) {
  9.  $newsy[] = $row;
  10. }
  11. ?>

Najlepiej byłoby, gdybyś ilość komentarzy przeliczał przy ich dodawaniu/usuwaniu i przechowywał jako pole w tabeli news.

  1. {foreach item=news from=$newsy}
  2. <div class="news-tytul"><a href="index.php?wiecej={$news.id}">{$news.tytul}</a></div>
  3. <div class="news-tresc">{$news.wstep}</div>
  4. <div class="news-stopka">{$u} | {$news.czas} {$news.czas1} | Komentarzy: {$news.iloscKomentarzy}</div>
  5. {/foreach}


Ten post edytował PiotrLegnica 29.02.2008, 13:11:34


--------------------
SithTemplate
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 Aktualny czas: 21.08.2025 - 14:58