![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 154 Pomógł: 0 Dołączył: 17.12.2003 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam problem ze zliczeniem ilości "linków" w "kategoriach" wyciąg z bazy:
i teraz zliczam ilosc linkow dla danej kategorii :
a taka funkcja zliczam ilosc kategorii w danej kategorii :
Moje pytanie brzmi: Jak ułożyć zapytania SQL dla zliczania wszystkich podkategorii (takze z ich podkategoriami) oraz wszystkich linkow dla danej kategorii (i ich podkategorii) gdyz narazie udaje mi sie zliczyc tylko 1 poziom w dol... Przyklad - 1 (4/4) -- 1.1 - (link1,link2) -- 1.2 -- 1.3 (link3) --- 1.4 (link4) mam nadzieje ze wyrazilem sie zrozumiale ![]()
z góry Dziękuję i pozdrawiam Marcin -------------------- ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
To Ci poda ile jest linkow w danej kategorii (cat.id). Jesli chesz z wybranej wyciagnac to wstaw w WHERE warunek. Radze tez zmienic typ tabeli na INNODB (wymusisz relacje) -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
rekurencja, poczytaj o tym. Ja bym próbował coś w SQL zakombinować, jakąś pętlę, która, działała by dopóki istnieje rodzic kategorii, w pętli zliczało by sumę w każdej kategorii.
Coś a'la DOPOKI(parrent>0) sume += count(*) linki w tabeli gdzie cat = cat_id teraz napisz to w MySQL, no i popraw błędy ![]() -------------------- Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 154 Pomógł: 0 Dołączył: 17.12.2003 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Cytat(SongoQ @ 2005-12-17 14:46:33)
To Ci poda ile jest linkow w danej kategorii (cat.id). Jesli chesz z wybranej wyciagnac to wstaw w WHERE warunek. Radze tez zmienic typ tabeli na INNODB (wymusisz relacje) Dzięki pomogło ![]() ![]()
teraz zostało mi pobawić się z kategoriami, ale teraz przynajmniej mam punkt odniesienia ![]() Nie rozumiem tylko o co chodzi z tym INNODB? Na MyISAM wszystko chodzi, w sumie nigdy nie zwracałem na to uwagi.. w jakim sensie "wymusza relację" ? pozdrawiam -------------------- ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nie rozumiem tylko o co chodzi z tym INNODB? Na MyISAM wszystko chodzi, w sumie nigdy nie zwracałem na to uwagi.. w jakim sensie "wymusza relację" ? W InnoDB masz relacje w MyISAM nie. Co to sa relacje to chyba nie musze pisac, w google pelno o tym jest. Jesli uzyjesz InnoDB i utworzysz klucz obcy wtedy mozesz przypisac co ma sie dziac jesli klucz podstawowy zostanie np usuniety. Czy ma sie pokazac blad czy usunac odwolania, czy np ustawic na NULL. Klucze obce wymuszaja pewne zachowania. Najlepiej bedzie jak sam znajdziesz info w sieci i przekonasz się do czego to sluzy. -- Dodane No i oczywiscie transakcje ![]() -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 255 Pomógł: 0 Dołączył: 22.04.2004 Skąd: Żoliborz Ostrzeżenie: (0%) ![]() ![]() |
Co do InnoDb, to brakuje tam niestety index'ów typu fulltext, więc coś za coś.
-------------------- Visual Basic - kto by pomyślał :)
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 21:14 |