Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Liczenie rekordów tablicy w while
Forum PHP.pl > Forum > Przedszkole
enemyofarcha
Witam, szukam i nie mogę znaleźć rozwiązania.. Chciałbym by przy kategoriach w nawiasach zliczało ilość zdjęć, na podstawie liczenia rekordów z bazy danych.
Jednak jak to zrobić w warunku while.. Skrypt wygląda tak:
  1. echo '<div class="menu_photo">'."\n\n";
  2. $sql = 'SELECT * FROM foto_zdj_kategorie ORDER by kat_id ASC';
  3. $res = mysql_query($sql) or die('Błąd wykonania zapytania: '.mysql_error());
  4. while($row = mysql_fetch_array($res)) {
  5. $podkat = $row['kat_id'];
  6. echo '<table class="category">';
  7. echo '<tr><td class="header">'.$row['kat_nazwa'].'</td></tr>'."\n";
  8.  
  9. $sql = "SELECT * FROM foto_zdj_pod_kat WHERE kat_id='$podkat' ORDER by pod_nazwa ASC";
  10. $res2 = mysql_query($sql) or die('Błąd wykonania zapytania: '.mysql_error());
  11. while($row2 = mysql_fetch_array($res2)) {
  12. if ($_GET['sub'] == $row2['pod_id']) {
  13. echo '<tr><td class="bg"><a class="active" href="gallery.php?category='.$row2['kat_id'].'&sub='.$row2['pod_id'].'">'.$row2['pod_nazwa'].'</a><span class="ile">('.$row2['pod_zdj'].')</span></td></tr><tr>'."\n"; } else {
  14. echo '<tr><td class="bg"><a href="gallery.php?category='.$row2['kat_id'].'&sub='.$row2['pod_id'].'">'.$row2['pod_nazwa'].'</a><span class="ile">(x)</span></td></tr><tr>'."\n";
  15. }
  16. }
  17. echo '<td class="footer"></td></tr></table>'."\n\n";
  18. }
  19. echo '</div>'."\n";



Oczywiście zdjęcia są w tabeli foto_zdj_dane i zliczać musi kolumne zdj_pod w zależności od należności do podkategorii..

Jak to można by zrobić?
Proszę o pomoc.
skowron-line
Cytat(enemyofarcha @ 16.02.2010, 23:07:04 ) *
Oczywiście zdjęcia są w tabeli foto_zdj_dane i zliczać musi kolumne zdj_pod w zależności od należności do podkategorii..

Szukałem ale nie mogłem znaleźć w kodzie który podałeś zapytań do tych tabel.
Ale rozwiązaniem jest złączenie tych 2 tabel po id_pod_kat i w zapytaniu zrobić COUNT i grupować po id_kat.

cos w stylu
  1. SELECT count(zdjecia.id), kategorie.nazwa FROM zdjecia, kategorie WHERE zdjecia.id_kat = kategorie.id GROUP BY kategorie.id
enemyofarcha
Mniej więcej ogarnąłem to co pokazałeś, ale jak z tego 'drukować' liczenie?
w ten sposób, $row['id'] ?

  1. echo '<div class="menu_photo">'."\n\n";
  2. $sql = 'SELECT * FROM foto_zdj_kategorie ORDER by kat_id ASC';
  3.  
  4. $res = mysql_query($sql) or die('Błąd wykonania zapytania: '.mysql_error());
  5.  
  6. while($row = mysql_fetch_array($res)) {
  7. $podkat = $row['kat_id'];
  8. echo '<table class="category">';
  9. echo '<tr><td class="header">'.$row['kat_nazwa'].'</td></tr>'."\n";
  10.  
  11.  
  12. $sql = "SELECT COUNT(foto_zdj_dane.zdj_pod), foto_zdj_pod_kat.* FROM foto_zdj_dane, foto_zdj_pod_kat WHERE foto_zdj_pod_kat.kat_id ='$podkat' GROUP BY foto_zdj_pod_kat.pod_nazwa";
  13.  
  14. $res2 = mysql_query($sql) or die('Błąd wykonania zapytania: '.mysql_error());
  15.  
  16.  
  17. while($row2 = mysql_fetch_array($res2)) {
  18. if ($_GET['sub'] == $row2['pod_id']) {
  19. echo '<tr><td class="bg"><a class="active" href="gallery.php?category='.$row2['kat_id'].'&sub='.$row2['pod_id'].'">'.$row2['pod_nazwa'].'</a><span class="ile">('.$row2['zdj_pod'].')</span></td></tr><tr>'."\n"; } else {
  20. echo '<tr><td class="bg"><a href="gallery.php?category='.$row2['kat_id'].'&sub='.$row2['pod_id'].'">'.$row2['pod_nazwa'].'</a><span class="ile">('.$row2['zdj_pod'].')</span></td></tr><tr>'."\n";
  21. }
  22. }
  23. echo '<td class="footer"></td></tr></table>'."\n\n";
  24. }
  25. echo '</div>'."\n";
skowron-line
  1. $sql = "SELECT COUNT(foto_zdj_dane.zdj_pod) AS ile_zdjec, foto_zdj_pod_kat.* FROM foto_zdj_dane, foto_zdj_pod_kat WHERE foto_zdj_pod_kat.kat_id ='$podkat' GROUP BY foto_zdj_pod_kat.pod_nazwa";
  2.  
  3. $res2 = mysql_query($sql) or die('Błąd wykonania zapytania: '.mysql_error());
  4.  
  5.  
  6. while($row2 = mysql_fetch_array($res2)) {
  7. echo $row2['ile_zdjec'];
  8. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.