![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 10.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam takie pytanie
Oplaca sie cachowac zapytania z bazy danych jesli cachuje dany box. np. cachuje calego newsa(ilosc komentarzy, autora, kategorie, tagi etc.) Tak na chlopski rozum nie oplaca sie cachowac zapytan i tego boxu (wtedy najpierw bedziemy musiel cachowac zapytanie a potem dany box - co za tym idzie bezsensu robimy cachowanie bazy). Jesli moje myslenie jest dobre i w tym przypadku nie oplaca sie cachowac zapytania to mozna zrobic tak z wszystkim tj. komentarze (nie cachujemy zapytan tylko caly box z komentarzami tj. autor, + dodatkowae opcje(np ilosc znajomych etc)) Patrzac na to cachowanie bazy danych jest zbedne(biorac pod uwage ze np. mysql ma system wlasny cachujacy)... Jesli sie myle prosze o napisanie co jest bardziej oplacalne(mowimy o tym aby strona chodzila szybciej i mowimy tu o stronie gdzie dziennie jest grubo ponad 100 tys odslon ! ) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 10.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Cytat Tak wykonamy robiac petle w petli a gdy chcemy tego uniknac? To jak to mozna optymalnie pobrac? Przecież jak masz napisaną relację jeden - do-wielu (news - news2cat - cat) wszystko leci jednym zapytaniem i po prostu wyciągasz. Tu mamy relacje wielu do wielu chyba 1 tabela newsy: [id_news,tytul] 2 tabela kategorie [id_cat,nazwa] 3 tabela news_cat [id_news,id_cat] mamy 2 newsy 1 => [1,pierwszy news] 2 => [2, drugi news] mamy 2 kategorie 1=> [1, pierwza kategoraia] 2=> [2, druga kategoria] rekordy w news_cat: 1=> [1,1](1 news do 1 kategorii) 2=> [1,2](1 news do 2 kategorii) 3=> [2,1](2 news do 1 kategorii) czyli musimy zrobic
Kod napisany na szybko nie wiem czy dziala chodzilo o to zeby pokazac o co mi chodzi. takie cos wyswietli nam 1 box: To jest tytul: pierwszy news To sa kategorie: Pierwsza kategoria, druga kategoria, 2 box: To jest tytul: drugi news To sa kategorie: Pierwsza kategoria Jak wyswietlic cos takiego bez uzycia petli w petli jak pokazalem to u gory ? |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Jak wyswietlic cos takiego bez uzycia petli w petli jak pokazalem to u gory ? Ja tego typu sprawy rozwiązuję 2 zapytaniami: Pierwsze:
Drugie:
Potem tylko odpowiednie obrobienie tego w PHP (utworzenie odpowiedniej tablicy) i masz wszystko co trzeba. Jeżeli Twoja wersja MySQL nie obsługuje LIMITu w podzapytaniu lub chciałbyś się po prostu pozbyć podzapytania to możesz w PHP pobrać wszystkie wyciągnięte id z zapytania pierwszego, przypisać je do tablicy no i potem w PHP:
Ten post edytował phpion 11.06.2009, 12:37:16 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 15:29 |