Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mysql_num_rows z 5 tabel ...
Forum PHP.pl > Forum > Bazy danych > MySQL
losv
witam,
mam maly problem poniewaz musze zliczyc ilosc komentarzy danego uzytkownika z 5 roznych tabel ...
godzinne skladanie zapytan doprowadzaly wciaz do jednego rezultatu czyli 0 rezultatow ...

eg:

tab_1, tab_2, tab_3, tab_4, tab_5, tab_5 -> niestety taki uklad musi zostac

  1. SELECT cg_tab_1_komentarze.id, cg_tab_2_komentarze.id, cg_tab_3_komentarze.id, cg_tab_4_komentarze.id, cg_tab_5_komentarze.id, cg_artykul_komentarze.id
  2. FROM cg_tab_1_komentarze, cg_tab_2_komentarze, cg_tab_3_komentarze, cg_tab_4_komentarze, cg_tab_5_komentarze, cg_artykul_komentarze
  3. WHERE cg_artykul_komentarze.id_uzytkownik = 1 OR cg_tab_1_komentarze.id_uzytkownik = 1 OR cg_tab_2_komentarze.id_uzytkownik = 1 OR cg_tab_3_komentarze.id_uzytkownik = 1 OR cg_tab_4_komentarze.id_uzytkownik = 1 OR cg_tab_5_komentarze.id_uzytkownik = 1


Z and dobrze dziala gdy w kazdej tabeli jest chociaz jeden wpis , z or niestety zawsze 0.

Pozdrawiam
jastu
Jeśli takich zapytań będzie sporo przy wywołaniu strony to mozesz bardzo obciążyć nimi bazę, proponuję zbudować widok który będzie miał kolumnę ze zliczonymi komentarzami. Widok będzie się odświerzał jeśli ilosć komentarzy bądź wartość którejś z kolumn się zmieni a nie za każdym wywołaniem strony

Dziwne to zrobione, powalcz tak :
  1. SELECT
  2.  
  3. count(cg_tab_1_komentarze.id) +
  4. count(cg_tab_2_komentarze.id) +
  5. count(cg_tab_3_komentarze.id) +
  6. count(cg_tab_4_komentarze.id) +
  7. count(cg_tab_5_komentarze.id) +
  8. count(cg_artykul_komentarze.id)
  9.  
  10. FROM ...... reszta zapytania
abusiek
jak dla mnie zrobienie tego w sposob, ktory zaproponowales jest niemozliwe. Nawet jesli zapytanie sie wykona to wynik dostaniesz w takiej postaci (jako jeden wiersz):

id | id | id | id | id |

mysql_num_rows da ci 1 i juz gubisz cztery komentarze.

Wedlug mnie powinienes napisac funkcje w sql, ktora jako argument bedzie dostawala id uzytkownika, policzy ilosc komentarzy w kazdej tablicy oddzielnie, zsumuje a nastepnie ladnie zwroci wynik.

a ty w php-ie napiszesz tylko $sql = "select funkcja(".$user.");";
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.