Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mysql_num_rows z 5 tabel ...
losv
post 31.08.2007, 12:57:09
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 2.04.2005

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


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

Ten post edytował losv 31.08.2007, 12:59:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
jastu
post 31.08.2007, 14:12:20
Post #2





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


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


--------------------
Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
Go to the top of the page
+Quote Post
abusiek
post 31.08.2007, 14:13:21
Post #3





Grupa: Zarejestrowani
Postów: 89
Pomógł: 5
Dołączył: 23.10.2006
Skąd: Gda?sk

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


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.");";
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 - 04:18